【.cmd】 バッチファイルスクリプト %11 【.bat】at TECH
【.cmd】 バッチファイルスクリプト %11 【.bat】 - 暇つぶし2ch433:デフォルトの名無しさん
16/01/19 21:34:08.04 ibh0JYmW.net
ソフ板に質問スレが無かったので、こちらで教えて欲しいのですが・・・
2つのフォルダを比較して、フォルダ1と同じ名前のファイルだけ抽出して別フォルダに保存出来るアプリありますでしょうか?
例えば
(フォルダ1)
ファイルa
ファイルf
ファイルg
ファイルp
ファイルx
(フォルダ2)
ファイルa
ファイルb
ファイルc
ファイルf
ファイルg
ファイルv
ファイルw
ファイルx
の場合フォルダ2の
ファイルa
ファイルf
ファイルg
ファイルx
だけ、フォルダ3にコピーしたいのですが・・・
バッチファイルで出来るなら、それでもいいのですが、よろしくお願いします。

434:デフォルトの名無しさん
16/01/19 21:36:04.38 ibh0JYmW.net
あるいは、フォルダ1にあってフォルダ2に無いファイルをフォルダ2から消しても構いません。
最終的にフォルダ1にある名前のファイルだけ残ればいいです。
因みにですが、フォルダ1とフォルダ2のファイルは名前が同じでも中身が違いますので、残すのはあくまでもフォルダ2のファイルだけです。

435:デフォルトの名無しさん
16/01/19 22:03:45.19 IRnEE3xb.net
スレリンク(software板)
スレリンク(software板)
バッチでも出来るけど
フォルダ1と2にはフォルダが無い事前提?
フォルダ1か2、或いは両方にファルダがある場合どうするの?

436:デフォルトの名無しさん
16/01/20 00:58:45.36 QphOxfb9.net
>>416
set "DIR_A=%CD%\f1"
set "DIR_B=%CD%\f2"
set "DIR_C=%CD%\f3"
md %DIR_C%
pushd "%DIR_B%" || goto :err
for %%a in (*) do dir /a-d /b "%DIR_A%\%%~a" >nul 2>nul && copy %%~a "%DIR_C%"
popd
set DIR_A=
set DIR_B=
set DIR_C=
goto :eof
:err
echo error
goto :eof

437:デフォルトの名無しさん
16/01/20 03:16:35.15 CGJNTMJr.net
>>417
@echo off &setlocal
REM USAGE: this.bat "folder1" "folder2"
pushd "%~1" ||goto :eof
popd
pushd "%~2" ||goto :eof
pushd ..
set DTTM=%date:/=%%time: =0%
set DTTM=%DTTM::=%
set $TMP=$tmp%DTTM:~0,-3%
move "%~2" %$TMP%
xcopy /e /i /h /k /y /b %$TMP% "%~2\%$TMP%"
rd /s /q %$TMP%
for /f "delims=" %%A in ('dir /a:-d /b "%~1"') do if exist "%~2\%$TMP%\%%A" move "%~2\%$TMP%\%%A" "%~2\%%A"
rem rd /s /q "%~2\%$TMP%"
exit /b
@echoからexitまでをコピーして拡張子をbatで保存
"folder1" "folder2" は同じディレクトリにあってそこをカレントディレクトリとして実行するならフォルダ名のみで可
そうでない場合はフルパスで指定
exitの前のrem rd /s /q "%~2\%$TMP%"をrd /s /q "%~2\%$TMP%"とrem消せばtmpフォルダが削除されるけど十分テストしてから消してね
>フォルダ2に無いファイルをフォルダ2から消しても構いません
フォルダ2のファイルのうちフォルダ1にあるものとファイル名が同一のもの以外を削除ってことよな?
ファイルサイズが大きいなら該当ファイルだけtmpフォルダに移動させる仕様の方が処理が早い

438:デフォルトの名無しさん
16/01/20 05:25:10.21 2Q8BlnOV.net
@echo off &setlocal
REM USAGE: this.bat "folder1" "folder2"
pushd "%~1" ||goto :eof
popd
pushd "%~2" ||goto :eof
pushd ..
set DTTM=%date:/=%%time: =0%
set DTTM=%DTTM::=%
set $TMP=$tmp%DTTM:~0,-3%
md "%~2\%$TMP%"
for /f "delims=" %%A in ('dir /a:-d /b "%~2"') do if not exist "%~1\%%A" move "%~2\%%A" "%~2\%$TMP%\%%A"
rd /s /q "%~2\%$TMP%"
exit /b

439:デフォルトの名無しさん
16/01/20 07:14:28.26 Mi5py/5P.net
for %%i in ("フォルダ1\*") do move "フォルダ2\%%~nxi" "フォルダ3\"

440:デフォルトの名無しさん
16/01/24 00:40:39.46 krEiQR2u.net
ファイルのリネームをしたいです
具体的な処理は 複数のファイルを
20160116
2016年01月16日
を160116の6ケタ数字に変更してファイル名の最後に持っていくという処理をしたいです
写真20160116.jpg
20160116家.jpg
2016年01月16日花.jpg
犬2016年01月16日.jpg
をすべて→写真 160116.jpg
みたいに文字列+日付6ケタに統一したいのです

441:デフォルトの名無しさん
16/01/24 00:41:52.56 krEiQR2u.net
訂正
ファイルのリネームをしたいです
具体的な処理は 複数のファイルを
20160116
2016年01月16日
の日付が含まれたファイル名を
160116の6ケタ数字に変更してファイル名の最後に持っていくという処理をしたいです
具体的には
写真20160116.jpg
20160116家.jpg
2016年01月16日花.jpg
犬2016年01月16日.jpg
をすべて→写真 160116.jpg
みたいに文字列+日付6ケタに統一したいのです
よろしくお願いします

442:デフォルトの名無しさん
16/01/24 01:27:04.99 5+KozvoU.net
>>424
>>423
difして差分取れ

443:デフォルトの名無しさん
16/01/24 05:34:39.03 fqtpw7CO.net
なぜバッチでするの?
PowerShell じゃダメなのか?

444:デフォルトの名無しさん
16/01/24 08:03:06.77 bklX6SGr.net
>>426
それができるならやってる

445:デフォルトの名無しさん
16/01/24 15:29:33.54 LnmKPUOX.net
出来なくはないけど、文字列+日付6ケタ の文字列部分に"年""月""日""%""&"が使われていない事とかの制約付くのと手間とか諸々考えたらリネーム系のソフト探すかPSやperlとかの正規表現使えるスクリプト言語の方が良い
リネーム系ソフトが一発で文字列+日付6ケタに出来ないなら一旦、日付8ケタ_文字列.jpg とかに変換してそこからバッチで、文字列+日付6ケタに再変換するとかは?

446:デフォルトの名無しさん
16/01/25 03:33:01.80 FJlvjxIx.net
>>423
>>424
ファイル名が例題通りなら
setlocal enabledelayedexpansion
SET Fldr=%USERPROFILE%\Pictures
SET Ext=*.jpg
SET RenBat=RenStrYYMMDD.cmd
echo;cd /d "%Fldr%" > "%RenBat%"
for /f %%0 in ('dir /b "%Fldr%\%Ext%"') do (
set DelNGP=%%~n0
set DelNGP=!DelNGP:年=!
set DelNGP=!DelNGP:月=!
set DelNGP=!DelNGP:日=!
set Str=!DelNGP!
for /l %%C IN (0,1,9) DO @(
set Str=!Str:%%C=!
)
call set YYYYMMDD=%%DelNGP:!Str!=%%
if "!DelNGP!"=="!Str!!YYYYMMDD!" (
echo;ren "%%~nx0" "!Str!!YYYYMMDD:~-6!%%~x0" >> "%RenBat%"
) else (
echo;ren "%%~nx0" "!YYYYMMDD:~-6!!Str!%%~x0" >> "%RenBat%"
)
)
で、出来たバッチファイルの怪しいヤツを編集して実行すればなんとか。
ファイル名がこれに当てはまらないなら、正規表現の出番なので
提示されている、PSとかperl、sed、awk等を仕入れて専用スレでお願いします。

447:デフォルトの名無しさん
16/01/25 03:54:11.66 FJlvjxIx.net
実行結果は
写真160116.jpg
160116家.jpg
160116花.jpg
犬160116.jpg
ですが、if文をやめてechoを最初の行だけにすれば
写真160116.jpg
家160116.jpg
花160116.jpg
犬160116.jpg
になります。

448:デフォルトの名無しさん
16/01/27 05:07:29.42 fJiggefa.net
①参照中のNTPサーバーを調べる ②NTPサーバーとの時刻のズレを表示する バッチなんですが
ズレを表示するコマンドは下記のようにNTPサーバー名が必要です
w32tm /monitor /computers:[NTPサーバ名]
そこでNTPサーバーを調べるコマンドは "w32tm /query /source"ですが
返り値は ntp.nict.jp,0x9 みたいな感じで ntp.nict.jp だけを取り出したいと思います
そこでgoogle検索して下記のようなものを書いたところ期待どおりの結果を得る事が出来ました
結果的にはOKなのですがechoとw32tmのコマンドくらいしか意味がわかっていません
特に3行目5行目はチンプンカンプンですがこういう書き方で問題ないでしょうか?
無駄な記述があるとか、もっとスマートな方法があるとか指摘して頂ければ助かります
よろしくお願いします
--------------------------------------------------------------------------
@echo off
SETLOCAL
for /f "usebackq tokens=*" %%i in (`w32tm /query /source`) do @set RESULT=%%i
echo %RESULT%
for /f "tokens=1-2 eol=, delims=," %%A in ("%RESULT%") do (
set STR1=%%A
set STR2=%%B
)
echo サーバー: %STR1%
w32tm /monitor /computers:%str1%
endlocal
pause

449:デフォルトの名無しさん
16/01/27 06:18:16.88 3u678Fz6.net
for /f "delims=," %%A in ('w32tm /query /source') do ( echo サーバー: %%A
w32tm /monitor /computers:%%A
)
pause

450:デフォルトの名無しさん
16/01/27 06:39:40.57 3u678Fz6.net
for /f "delims=," %%A in ('w32tm /query /source') do ( echo サーバー: %%A
w32tm /monitor /computers:%%A | findstr "NTP:"
)
pause

451:デフォルトの名無しさん
16/01/27 06:50:27.07 3u678Fz6.net
for /f "delims=," %%A in ('w32tm /query /source') do ( echo サーバー: %%A
for /f "tokens=2" %%B in ('w32tm /monitor /computers:%%A ^| findstr "NTP:"') do echo %%B
)
pause

452:デフォルトの名無しさん
16/01/27 07:38:45.54 fJiggefa.net
>>432,428
ありがとうございます
表示もスッキリして頂いてとても勉強になります

453:デフォルトの名無しさん
16/01/27 23:21:20.89 bcAMZw4L.net
for /f "delims=," %%A in ('w32tm /query /source') do for /f "tokens=2 delims=+s " %%B in ('w32tm /monitor /computers:%%A ^| findstr "NTP:"') do echo %%A: %%B

454:デフォルトの名無しさん
16/01/28 13:48:27.48 EDEAMnLy.net
「資料%28過去%29」みたいにファイル名にutf-8?が含まれるものを指定してるのですが
batを実行するとデコードされて「資料(過去)」と認識されてます。
「資料%28過去%29」を文字列として認識させるにはどうしたら良いでしょうか。

455:デフォルトの名無しさん
16/01/28 15:22:02.94 hExe5FIX.net
>>437
パーセントエンコードはURIに使うものでbatでデコードはされないと思うな
それとは別に
batで%は特別な意味を持っていて、普通は引数や環境変数の中身を見るときに使う
echo %1 %hoge%
とか
よって、%2が第2引数を参照してるととられ、引数指定してなかったら無いので
資料8過去9
とならないとおかしいと思うけど?
本当に「資料(過去)」となるのなら俺にはその原因は分からない
で、「資料8過去9」となると仮定して%%と重ねて記述すると%になるので
資料%%28過去%%29
でどうかな?
batの何処にどういう風に使ってるのかわからないので場合によっては
%%%%と各必要があるかも知れない

456:デフォルトの名無しさん
16/01/29 21:46:01.22 j1UQgjYg.net
>>436
ありがとうございます
必要な情報だけ一行に集約されてとても見やすいです
こういうふうに書けるよう理解を深めたいです

457:デフォルトの名無しさん
16/01/30 03:15:06.90 hg3OxSOg.net
cmd.exe /k @for /f "delims=," %A in ('w32tm /query /source') do @for /f %B in ('2^>null nslookup %A ^| findstr /v :') do ^
@for /f "tokens=2 delims=+s" %C in ('w32tm /monitor /computers:%A ^| findstr "NTP:"') do @echo %A [%B]: %C
こういうのを"ファイル名を指定して実行"からだと「アクセスが拒否されました」となるのですが
コマンドプロンプトを管理者として実行の時と同様の結果にする書き方とか方法があれば教えて下さい

458:デフォルトの名無しさん
16/01/30 10:20:23.91 zXGU0vQS.net
すみません。
ディレクトリの中を見ていき、2GB以下なら圧縮ということをしたく
対象Dir
├フォルダ
│ ├フォルダ(2GB 以下) ← これを圧縮
│ │ └ファイル
│ ├フォルダ(2GB以上)
     ├フォルダ(2GB以下) ← これを圧縮
     ├フォルダ(2GB以上)
再帰的に見ていった時に、圧縮していくと最終的に一番上が2GB以下になり
全部圧縮されてしまい。どなたかお助けください

459:デフォルトの名無しさん
16/01/30 23:03:45.58 ffKBMc7H.net
再帰で圧縮せずに2GB未満フォルダのリストを作り再帰終了後にリストを元に圧縮
どうでも良いけど、超&以下、以上&未満な

460:デフォルトの名無しさん
16/01/31 11:30:04.13 +ngYeOTE.net
なるほど、そういうことですか
リストを出力して、最後にそれをパス指定で圧縮と
無駄に再帰でやろうとしすぎていました。ありがとうございます

461:デフォルトの名無しさん
16/02/06 10:40:05.52 hbtVaDtk.net
あるURL URLリンク(AAAAAA)… を引数%1として、
URLリンク(AAAAAA)だけを取り出す方法が知りたいです
(3つ目の/までの文字列を取り出したい)
よろしくお願いします

462:デフォルトの名無しさん
16/02/06 11:56:20.12 ilYyGYOR.net
>>444
@echo off
set arg1=%~1
@for /f "tokens=1,2 delims=/" %%i in ("%arg1%") do set domain1=%%i//%%j/
echo %domain1%
set arg1=%~1
set Scheme=%arg1://=&set arg1=%
set domain2=%arg1:/=&set dummy=%
echo %Scheme%//%domain2%/

463:デフォルトの名無しさん
16/02/06 12


464::13:31.62 ID:hbtVaDtk.net



465:デフォルトの名無しさん
16/02/07 03:34:31.41 xzt+ySx/.net
0001~9999までをカウントするのってどうやればいいですか
常に4桁の文字列が得られるようにしたいです

466:デフォルトの名無しさん
16/02/07 03:59:09.24 S13nymNF.net
>>447
echo %random% を使う
0、10000以上であればやり直す

467:デフォルトの名無しさん
16/02/07 04:06:32.80 oI7YLQ9S.net
>>447
質問の意味がいまいち不明だがこういうことか?
@echo off
for /l %%i in (0,1,9999) do (
call set cnt=000%%i
call echo %%cnt:~-4%%
)
set n=0
:loop
set cnt=000%n%
echo %cnt:~-4%
set /a n+=1
if %n% lss 10000 goto :loop

468:デフォルトの名無しさん
16/02/07 15:37:11.81 YEUGR+cI.net
for /L %%i in (10001,1,19999) do (set ct=%%i
call echo %%ct:~-4%%)

set a=10001
:LOOP
echo %a:~-4%
set /a a+=1
if %a% LEQ 19999 (goto :LOOP) else exit /b

469:デフォルトの名無しさん
16/02/07 16:38:16.87 7II1MwkR.net
コマンドの実行結果を環境変数(value)に格納すべく、
for /f %%i in ('コマンド') do set value=%%i としたとき、
コマンドの処理時間が長いと完全に沈黙しちゃうので何とかしたいのだけど、
コマンドを単独で実行した時にコンソール上に表示される実行中の情報
(進行状況とか)を表示する方法ってないかな?

470:デフォルトの名無しさん
16/02/07 17:41:06.71 oI7YLQ9S.net
>>451
どうしてもって言うのなら、ファイルをフラグに使うとなんとかなるかな
@echo off
set f=%temp%\result
start /b コマンド>%f%
set n=0
call :wait %f%
if %errorlevel% neq 0 goto :timeout
for /f "tokens=*" %%i in (%f%) do echo %%i
del %f%
goto :eof
:timeout
goto :eof
:wait
if %~z1 gtr 0 exit /b 0
ping -n 2 localhost >nul
set /a n+=1
echo 処理中(%n%秒)
if %n% leq 10 goto :wait
echo timeout
exit /b 1

471:デフォルトの名無しさん
16/02/07 17:51:21.78 oI7YLQ9S.net
別の方法として
tasklistからコマンドが消えるのを監視するのがいいかも
さらには、別batでコマンドを起動し、終了時にタスクなり他ソフトなりを起動して
何らかのアクションを起こし、それを監視するとか

472:デフォルトの名無しさん
16/02/07 20:46:37.41 csmRYXFo.net
URLリンク(www.google.co.jp)

473:446
16/02/08 00:34:24.61 tvZTUQzk.net
>>452-453
やはりちょっと別の工夫が必要なんだねぇ。
一応、当該コマンドの処理
(通常のファイル操作に加えて、標準エラー出力からの文字列を整形したものを環境変数に格納)
が終わったら格納した環境変数を使ってまた別のコマンドを実行していて、
その時にエラーレベル判定は行われるので、
すんなり行けば、次のコマンド(ここで"echo 中間処理終了")で、その程度での経過は分かるから、
申し訳ないけど、そのままで妥協しておこうかな。
>>454
同時でなくていい場合なら、標準エラー出力のほうを一度ファイルにして、
改めてtypeで読み込んで整形して環境変数に格納というのでも出来そう。
teeをLinux(Cygwinでも)で使ったことはあって、Cygwinのbashスクリプトでやっちゃおうか、とも思ったんだけど、
とりあえずどのWindows環境でも使えるということで、ハマってしまいました。
ただ、findstrが文字数オーバーでエラーが出るサンプルがあって、
結局grep使っちゃったから、あまり意味が無いかもw

御二方、どうもありがとう。

474:デフォルトの名無しさん
16/02/08 01:25:16.89 DULBP8IA.net
>>455
tasklistの結果からそのコマンドのイメージ名が消えるまで適当に表示させながら
ループさせるんじゃいけないの?
また、>>452のエラーレベルって蛇足的な処理じゃん
無くても問題ない
該当コマンドってのが自分でカスタマイズできるんならリダイレクトも不要
そのコマンドの終了時点でフラグ的なファイルに書き込めばいい

475:デフォルトの名無しさん
16/02/08 01:29:33.68 T6p//Vzm.net
>>452 さんが書いているように、ファイルを使うのが簡単かな
コマンドの最後でファイルを作り、
batでは if exist でそのコマンドができるのを待つ、なかったら timeoutで待つループ

476:デフォルトの名無しさん
16/02/08 01:30:33.89 T6p//Vzm.net
>>456
あ、ダブった

477:デフォルトの名無しさん
16/02/08 01:36:07.46 IaYL4Dgo.net
>findstrが文字数オーバーでエラーが出るサンプルがあって
もうバッチの範疇外じゃないのかな?どのWinでもって事ならWSHかPowerShellを勧めるよ

478:デフォルトの名無しさん
16/02/08 01:43:25.70 IaYL4Dgo.net
あと通常のファイル操作って言ってもそんな事になるくらいのかなりの量を処理しているならロジック自体を見直した方が良い気がする

479:デフォルトの名無しさん
16/02/08 01:46:27.75 U7IijhSa.net
title 処理中です。ウィンドウは絶対に閉じないでください。
echo 処理中です。ウィンドウは絶対に閉じないでください。
でいいじゃん
ちょっと応答不能になっただけで速攻ウィンドウ閉じる奴って
結構多いけど理解に苦しむ

480:446
16/02/08 21:23:57.31 4qV7ShMX.net
>>456-461
問題のコマンドについて、今まで標準エラー出力から文字列を抽出していたけど、
環境変数でファイルパスを別途加える事でログをファイルに出力できることがわかったので、
コマンドの処理は通常通りおこなって(コンソールに経過他の情報が表示される)、
その終了後、改めてログファイルから文字列を読み込んで環境変数代入を処理することで、
経過情報を表示しながら for /F や tee と同じ目的を数行で達することが出来たよ。
コマンド実行と環境変数代入を同時に処理するということにこだわりすぎたかな。
みなさん、お付き合いいただき、どうもありがとう。

481:デフォルトの名無しさん
16/02/08 21:58:26.82 aeLE2jq+.net
>>461
高度なプログラムが動き出しちゃうときあるから

482:デフォルトの名無しさん
16/02/10 23:06:13.15 rMhx/tnP.net
コピーする時 if exist であったら適当に名前変えてコピーしてたんだけど
そもそも、重複時自動的にリネームしつつコピーしてくれるちょっと便利コマンドって
どこかにありそうな気がしたので、そんなコマンド(プログラム)教えてください

483:デフォルトの名無しさん
16/02/11 01:24:38.76 xppsr9es.net
重複時、上書き?リネーム?
リネームするならコピー元?コピー先?
リネームの形式は連番?日時?
これらをコマンドラインオプションで設定出来る非対話形式なcuiコピーツールがあっても良いなって思うけど
バッチ側の少しの手間で実現出来るからわざわざ外部ツール導入するのは躊躇われるな
firefilecopyにそれっぽい設定があった気がするけど使ってたの何年も前なので覚えてないわ

484:デフォルトの名無しさん
16/02/11 10:17:29.10 E36uRHTx.net
>>465
> これらをコマンドラインオプションで設定出来る非対話形式なcuiコピーツール
まさしくそういうツールが欲しいなと思った訳でして、firefilecopy 試してみたところ
連番などの指定ができない、既にリネーム済みのものがあった時に自動的に
処理できない模様で目的に合致せず、無念
linux 系のツールならと思ってググッてみても、cp だと拡張子が維持できない suffix の
付け方になってしまうなど、調度良いのが今のところ発見できず……

485:デフォルトの名無しさん
16/02/15 13:55:49.70 wQ6idclh.net
”コマンドラインでファイルやフォルダを名前に「コピー (n) ~ 」を付けて複製する。”
でぐぐって見つかるバッチを条件が合致した際にcallするとか
スクリプトだからリネーム条件なんかはカスタマイズも可能かと

486:デフォルトの名無しさん
16/02/15 14:13:15.78 NpLlCTmp.net
ffcかなんかは結構細かいコマンドラインオプションを受け付けてたから
それでコピーしつつログ解析して必要ならナンバーか日付つけてのリネームコピーするとかやればいいんじゃないの

487:459
16/02/15 21:36:25.85 CcVUGHWP.net
気を使わせて申し訳ありません
現状として、コピーする時に同名ファイルがある時には名前を変えてコピーするのは
既にバッチファイルで実現していて、同じことを手軽に便利に出来る単独の CUI な
ツール、プログラムがあれば、というよりあるに違いない、と思ったのが >>464
質問だったわけです

488:デフォルトの名無しさん
16/02/21 22:42:20.49 LXngu2PVR
共用パソコンのユーザごとのデスクトップとマイドキュメントにある
30日前更新のファイル(docx,xlsx)の一覧をバッチで取得する方法を
ご教示ください。環境はWindows7です。

489:デフォルトの名無しさん
16/03/11 22:12:34.63 g0a/JI38.net
バッチ中のcopy file1 file2 は copy "file1" "file2" と書くべき
file1 file2が+で始まる場合 ""で囲んでいないとcopyされない

490:デフォルトの名無しさん
16/03/15 00:41:28.28 8utBFAR1.net
バグ技、面白ネタなどあれば投下お願いします

491:騙し髪
16/03/15 01:32:32.69 ZWMv0nUc.net
>>472
これなど如何?
::←全角254文字が限界→
動く.CMD
rem /; ::0123456789ABCDEFGHIJKLMを11回書く+0 ※ 最後の0が254文字目
::0123456789ABCDEFGHIJKLM012345678・・・0
:LOOP
@ECHO;LOOP
@PAUSE
GOTO :LOOP
こちらは、GOTO :LOOP で止まります。
止まる.CMD
rem /; ::0123456789ABCDEFGHIJKLMを11回書く+01 ※ 最後の1が255文字目
::0123456789ABCDEFGHIJKLM012345678・・・01
:LOOP
@ECHO;LOOP
@PAUSE
GOTO :LOOP

492:デフォルトの名無しさん
16/03/16 09:25:21.97 6gvLipIQ.net
mshta vbscript:close(Execute("CreateObject(""SAPI.SpVoice"").Speak""nurupo"""))

493:デフォルトの名無しさん
16/03/20 13:25:19.72 pvWacbTU.net
@echo off
start "" "%~f0"
start "" "%~f0"
exit /b 0

494:デフォルトの名無しさん
16/04/02 01:38:35.14 SZPhSxIw.net
BashシェルをWindowsに搭載するWindows 10大型アップデート
URLリンク(gigazine.net)
これでバッチを使う必要がなくなればいいな

495:デフォルトの名無しさん
16/04/03 19:00:37.30 +cm4a62/.net
人によってはbatで使うかも
URLリンク(www.horstmuc.de)

496:デフォルトの名無しさん
16/04/04 03:27:50.00 UUnGIXWs.net
これって正式な機能?それともラベルを悪用しただけ?
In a batch file REM at the start of a line signifies a comment or REMARK, alternatively adding :: at the start of a line has a similar effect.
Rem - Comment | Windows CMD | SS64.com
URLリンク(ss64.com)

@ECHO OFF
::
:: First comment
REM Second comment
REM

497:デフォルトの名無しさん
16/04/04 03:48:54.12 TBgct8lK.net
similar effectってあるように同様の効果があるってだ


498:け ラベル機能をコメントとして使うのは昔からある手法



499:デフォルトの名無しさん
16/04/04 03:50:07.49 TBgct8lK.net
でも俺は
::comment
というように:を2つ連ねるけどね

500:デフォルトの名無しさん
16/04/10 15:46:04.10 wyM3R/Jw.net
for /f

501:デフォルトの名無しさん
16/04/10 16:11:22.77 wyM3R/Jw.net
"
for /f "delims=" %%a in (hoge.txt) do
このコマンドで1つのファイルから交互に2つの変数に中身を代入できないでしょうか
*hoge.txt*
ほげ1
ajairhioa
ほげ2
aj329jagjal
これを%%aにはほげ1ほげ2、%%bにはajairhioa、aj329jagjalを順次代入したいです
"

502:デフォルトの名無しさん
16/04/10 17:35:06.95 DGt37MFb.net
set cnt=0
for /f "delims=" %%a in (hoge.txt) do call :sub %%a
for /f "tokens=1* delims=," %%a in (hogehoge.txt) do echo %%a %%b
pause &exit /b
:sub
if %cnt%==0 (
set LN=%1
set /a cnt+=1
exit /b
)
>>hogehoge.txt echo %LN%,%1
rem ↑ファイルに書き出す事に不都合があるなら↓
rem for /f "tokens=1* delims=," %%a in ("%LN%,%1") do echo %%a %%b
set cnt=0

503:デフォルトの名無しさん
16/04/10 18:06:01.41 DGt37MFb.net
rem 3行毎
set cnt=1
for /f "delims=" %%a in (hoge.txt) do call :sub %%a
for /f "tokens=1,2* delims=," %%a in (hogehoge.txt) do echo %%a %%b %%c
pause &exit /b
:sub
if %cnt% LSS 3 (
set LN=%LN%,%1
set /a cnt+=1
exit /b
)
>>hogehoge.txt echo %LN%,%1
set LN=
set cnt=1

504:デフォルトの名無しさん
16/04/10 20:10:23.92 R4xtJDTH.net
wsh併用だと
@if (0)==(0) echo off
for /f "tokens=1,2 delims=," %%a in ('cscript.exe //nologo //e:jscript "%~f0"^<hoge.txt') do (
echo %%a , %%b
)
goto :eof
@end
var StdIn=WScript.StdIn;
while (!StdIn.AtEndOfLine){
var s=StdIn.ReadLine();
if(!StdIn.AtEndOfLine) WScript.Echo(s+","+StdIn.ReadLine());
}

505:デフォルトの名無しさん
16/04/11 21:54:33.79 Vzz4aFRc.net
>>483-485
バッチまったくの初心者であまりわかりませんでしたがありがとうございます
なにか初心者向けで体系的に学べるサイトとかありますかね?

506:デフォルトの名無しさん
16/04/11 21:58:42.43 Vzz4aFRc.net
>>483-485
バッチまったくの初心者であまりわかりませんでしたがありがとうございます
なにか初心者向けで体系的に学べるサイトとかありますかね?

507:デフォルトの名無しさん
16/04/11 21:59:22.47 Vzz4aFRc.net
書き込んでないと思って連投してしまいましたすみません

508:デフォルトの名無しさん
16/04/11 22:40:01.79 OwO3FuPu.net
PowerShell_ISE で、やった方がいいよ

509:デフォルトの名無しさん
16/04/11 22:59:56.31 Vzz4aFRc.net
powershellはchecksum使う時くらいしか使わないんですが、powershellのほうが初心者には使いやすいのでしょうか?

510:デフォルトの名無しさん
16/04/11 23:11:45.22 kHX/TE9c.net
>>490
はい

511:デフォルトの名無しさん
16/04/12 00:30:07.81 cKwKVfMZ.net
powershellはファイル属性を変えるときだけ使っている
テンポラリー属性ってcmdからだと変更できないよね

512:デフォルトの名無しさん
16/04/12 00:31:51.05 iN7RaFvn.net
PowerShell_ISE で、
$i=0
$evenStr=''
$oddStr=''
$ary = (cat hoge.txt) -as [string[]]
foreach ($line in $ary) {
if($i % 2 -eq 0){
$evenStr += $line
}else{
$oddStr += $line
}
$i++
}
Write-Output $evenStr, $oddStr
入力
1
2
3
4
5
出力
135
24

513:デフォルトの名無しさん
16/04/12 04:11:38.82 mqOre39w.net
バッチファイル今から覚えるのは無駄すぎる
せめてvbsにした方がいい

514:デフォルトの名無しさん
16/04/12 05:40:07.79 Hl1a/qVy.net
覚えるってほど御大層なモノじゃねーじゃん
精々 %1 && >> とかの幾つかのお約束事と最初に躓くコマンドはforくらい
他のコマンドやオプションはggってリファレンス見ればいいんだし
echo pause set if for call goto start move xcopy ren del dir findstr
これだけ知ってればちょっとしたファイル操作に便利だし他に比べハードル低いよ
複雑な事をするにはバッチは向かないし制約もあるから他が良いのは間違いないけど

515:デフォルトの名無しさん
16/04/12 08:15:23.59 smwPn8rR.net
他のを覚えてからでも遅


516:くはないかな



517:デフォルトの名無しさん
16/04/12 08:40:26.31 xYAotuK9.net
ちょっと凝ったことしようとしたらいきなり面倒になったり
トラップもそれなりにあるし
わざわざ覚える言語ではないと思う
bash 並みになればまだいいんだが

518:デフォルトの名無しさん
16/04/12 10:03:04.09 W9B2ZLoA.net
今から覚えるにはちょっと…というのは解かるんだが
一番簡単なものだし、ちょこっとやる分には良いとっかかりになると思うよ
ヘルプ読むだけで十分概要はわかるしね
それから何にいくのかは、自分が何に興味あるかで決めればいい

519:デフォルトの名無しさん
16/04/12 22:44:22.00 N5k4ywKZ.net
皆さんありがとうございます
cmdは少し学んで、その後win10に向けてshellを学ぼうかなと思います

520:デフォルトの名無しさん
16/04/29 16:15:40.02 Du8RELkw.net
ワイルドカード指定で否定は出来る?
例えば「指定フォルダ以下に存在する拡張子がtxt"以外"のファイルを全て削除(サブフォルダ含む)」
みたいな事をやりたいんだけど。

521:デフォルトの名無しさん
16/04/29 21:30:07.02 nOk/Iq10.net
>>500
そういう場合は
for /f %%i in ('dir "%1" /a-d /b /s | findstr /r /i /c:".txt\>"') do del %%i
というバッチを書いて第一引数に指定フォルダを渡せばいいんじゃないの??

522:デフォルトの名無しさん
16/04/29 21:35:10.00 nOk/Iq10.net
間違えた。
for /f %%i in ('dir "%1" /a-d /b /s | findstr /r /i /v /c:".txt\>"') do del %%i
だった。

523:デフォルトの名無しさん
16/04/29 23:27:50.12 Du8RELkw.net
ワイルドカードで否定な指定は無理なのか。
ありがとう。ちょっと検討しなおしてみる。

524:デフォルトの名無しさん
16/04/30 22:24:06.87 HLsp90ue.net
>>503
ワイルドカードで否定、というより…
hoge.txt hoge.doc hoge.xls … とあったとしてだよ。
.txt 以外の拡張子を持つファイル、という指定は Linux の bash でも 1コマンドでは出来ないよ??
とりあえず、俺の知る限りのコマンドラインシェルでは出来ない。

525:デフォルトの名無しさん
16/05/01 02:14:20.07 f7rDjALb.net
除外指定と言いたいのだろうけど三国人か?
496弄れば除外設定の拡張子もサブフォルダ以下を含めるかも引数で指定出来るようになるだろうに何か問題あるの?

526:デフォルトの名無しさん
16/05/01 08:38:28.34 4tDBI2/Z.net
正規表現だと否定って言うのは普通に使うから別に違和感ないけどね
それ以前にいきなり三国人とか言い出す癖直した方がいいと思うよ

527:デフォルトの名無しさん
16/05/01 11:19:50.80 tKi6j9CT.net
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
URLリンク(twitter.com)
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw

The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


528:デフォルトの名無しさん
16/05/01 15:01:02.76 gt2lBnxw.net
一般的ではないが、bash他にはそれっぽい拡張があるといえばある>否定
shopt -s extglob; ls !(*.txt)

529:デフォルトの名無しさん
16/05/01 20:56:52.01 w3ycpbWL.net
>>506
それで思い出したけど、ワイルドカードにはそもそも否定、っていう概念が無いのよね。
>>508
それは知らなかったぜ…。が、やっぱ拡張であって1コマンドじゃないのね。

530:デフォルトの名無しさん
16/05/02 11:40:31.88 ZqwyA4jL.net
xcopyだと /EXCLUDE で除外したいパスを指定できるけど
そういえば他のコマンドでは無いよね。

531:デフォルトの名無しさん
16/05/09 14:25:03.70 LpHkpPcH.net
>>506
> 正規表現だと否定って言うのは普通に使うから別に違和感ないけどね
普通に使う??
否定の正規表現がどのくらい面倒臭い代物か知ってて言ってんのかよ

532:デフォルトの名無しさん
16/05/09 20:31:48.60 4hkTezx/.net
>>511
若いなお前

533:デフォルトの名無しさん
16/05/11 20:07:41.82 +ByNjd23.net
>>511
お前は正規表現の前に日本語を勉強すべき

534:デフォルトの名無しさん
16/05/15 23:09:30.40 0PD+6ouG.net
Windows10 でコマンドプロンプトの透明度(不透明度)が設定できますが
color で色を変えるように、透明度の変更をコマンドでやるには
どうすれば良いでしょうか?

535:デフォルトの名無しさん
16/06/06 05:31:09.64 /VUqLFGt.net
フォルダ内に含まれるファイル名(若いファイル名)を取得して、そのファイル名
をフォルダ名としてリネームすることはできないのでしょうか?
■フォルダ1
┣ファイル1
┣ファイル2
■フォルダ2
┣ファイル3
┣ファイル4
といったフォルダ構造があったばあい、
■ファイル1
┣ファイル1
┣ファイル2
■ファイル3
┣ファイル3
┣ファイル4
といった感じにリネームしたいんです
ヒントがあれば教えてください

536:デフォルトの名無しさん
16/06/06 05:36:07.56 mrKNlhKB.net
>>515
再帰呼び出し

537:デフォルトの名無しさん
16/06/06 05:59:54.20 JVcEODJX.net
ソフ板の libre office スレで聞いていた人かな、あっちではスレを移動するとの
断りも何もせず放置したように移動してきてるみたいだけど
別人ならごめん
結果的に同名のフォルダとなる場合のリネームのルールさえ決めておけば
for でやってもそんなに難しくはない

538:デフォルトの名無しさん
16/06/06 06:39:56.64 /VUqLFGt.net
>>516
ファイル名をフォルダ名にリネームしている、参考ページがあれば教えてもらえないですか?
>>517
別人ではないですよ。
forを使う場合は、どうやるんでしょうか?
サンプルが載ってるページがあれば教えてください

539:デフォルトの名無しさん
16/06/06 07:38:12.87 mIdKUrWt.net
>>518
こんな感じ
@echo off
for /f "delims=" %%i in ('dir /b /on /ad') do (
for /f "delims=" %%j in ('dir /b /o-n /a-d "%%~i"') do set name=%%~j
call ren "%%~i" "%%name%%"
)
フォルダ名の重複によるリネームエラーを変名してリトライするなら
上の call ren "%%~i" "%%name%%" を
set src=%%~i
call set dst=%%name%%
call :ren
の3行に代えて下を追加(引数渡しでなく環境変数渡しなのは、特殊な文字の変換をなるべく防ぐため)
goto :eof
:ren
ren "%src%" "%dst%" 2>nul
set suffix=1
if %errorlevel% equ 0 goto :eof
:loop
ren "%src%" "%dst% (%suffix%)" 2>nul
set /a suffix+=1
if %suffix% gtr 10 echo ***打ち切り***&goto :eof
if %errorlevel% neq 0 goto :loop
goto :eof

540:デフォルトの名無しさん
16/06/06 08:36:49.68 /VUqLFGt.net
↑回答ありがとうございます。自分には理解できないので
調べて読み解いて、理解できあなかったらまた質問�


541:ウせてもらいます。



542:デフォルトの名無しさん
16/06/06 12:24:37.84 /VUqLFGt.net
↑無事動作しました。
ありがとうございました。
今まで、相当に無駄な作業してました。

543:デフォルトの名無しさん
16/06/06 15:17:54.02 mIdKUrWt.net
>>521
余計なことかも知れないが、空のフォルダがあった場合に変になるのでそのフォルダはリネームしないことにすると以下のようになる
@echo off
pushd %1
for /f "delims=" %%i in ('dir /b /on /ad 2^>nul') do (
call set folder=%%~i
call :search_file
call :ren
)
popd
goto :eof
:search_file
set fname=
for /f "delims=" %%j in ('dir /b /on /a-d "%folder%" 2^>nul') do set fname=%%~j&goto :eof
goto :eof
:ren
if not defined fname goto :eof
set suffix=1
ren "%folder%" "%fname%" 2>nul
:retry
if %errorlevel% equ 0 goto :eof
ren "%folder%" "%fname% (%suffix%)" 2>nul
set /a suffix+=1
if %suffix% gtr 10 echo ***打ち切り(%folder%)***&goto :eof
goto :retry

544:デフォルトの名無しさん
16/06/06 17:00:29.53 mIdKUrWt.net
訂正
call set folder=%%~i
for /f "delims=" %%j in ('dir /b /on /a-d "%folder%" 2^>nul') do set fname=%%~j&goto :eof
 ↓
set folder=%%~i
for /f "delims=" %%j in ('dir /b /on /a-d "%%folder%%" 2^>nul') do set fname=%%~j&goto :eof

545:デフォルトの名無しさん
16/06/06 19:49:58.32 wj+hntm6.net
>>521
相当に無駄なスレ違いの質問はクローズしよう
スレリンク(software板:665番)

546:デフォルトの名無しさん
16/06/06 20:27:13.87 kp8pJweP.net
libre office スレのもんだけど
マルチ宣言してる奴に快く回答するとか
まじクズっすねー

547:デフォルトの名無しさん
16/06/08 21:05:04.00 rpxHmTxH.net
>>522
そこはかとなくダサい気がするのだがうまく言えなくてもどかしい。

548:デフォルトの名無しさん
16/06/08 21:09:54.69 rpxHmTxH.net
>>525
面白い課題や面白い発見自身に罪は無い。
それを提示した人間がたとえ殺人者でも、その課題や発見自身は俺は歓迎する。
もし、Libre Office の開発者の一人が殺人を犯したからといってお前は Libre Office を使うのを止めるか?
止めるのであれば非難していただいて結構。

549:デフォルトの名無しさん
16/06/08 22:04:51.84 sUmK8XFr.net
>>527
その例えはおかしいね
マルチ質問に返答するのはマナー違反って話なんだから
つーか例える必要ないでしょ
マルチ質問に答えることがマナー違反ではない理由を言えばいいだけだ

550:デフォルトの名無しさん
16/06/08 22:23:27.09 rpxHmTxH.net
>>528
> マルチ質問に返答するのはマナー違反って話なんだから
間違い。
1. マルチ投稿は迷惑かもしれないが、課題としては良問と思った。情状酌量の余地あり。
2. マルチ投稿に答えるのがマナー違反だという話は聞いたことがない。
3. 別板からわざわざ出張って「○○のもんだけど」とか言われてもシラネ。掲示板のルール無視。それこそ893まがいの行為。

551:デフォルトの名無しさん
16/06/08 22:29:07.11 rpxHmTxH.net
>>528
お前がインターネットのルールブックなわきゃねぇんだ。マナーだのなんだのごたくヌカすな。
>>522
全体的にエラー処理まわりが気になるけど、そこは置いとく。
ren じゃなくて move じゃない?ren にすごく違和感…。

552:デフォルトの名無しさん
16/06/08 22:34:56.16 sUmK8XFr.net
>>529
1. あなたがそう思うのは勝手だけどそれに対してクズと呼ばれるのは仕方ないこと
2. マナー違反を受け入れるのもマナー違反なのは当然
3. 俺に言われても知らん
あとさ、例えが例えになってないことについてどう思ってんの?

553:デフォルトの名無しさん
16/06/08 22:49:05.28 JbG4hFO7.net
わざわざ出張ってこなくていいから大人しく返ってくれ
このスレは過去を見てもわかるように、親切な人間達が回答してくれる珍しいスレなんだからさー

554:デフォルトの名無しさん
16/06/09 00:29:49.83 mVcmv6vY.net
向こうのスレ見てきて状況がわかった
マルチって言ってるけど、向こうで最後に書いてから半日経ってからこっちに書いてるじゃん
それになんだか追いだされたように見える
まあ、さよなら、を言わずに出てったのは礼儀知らずかもしれないが
そんなのは世の中にいっぱいいるんで今更事たてて言うほ


555:どじゃないな



556:デフォルトの名無しさん
16/06/09 00:38:52.14 M1aHpfX0.net
setlocal
cd フォルダ
endlocal
でせっかくcdしても元に戻ってしまう

557:デフォルトの名無しさん
16/06/09 00:56:26.88 mVcmv6vY.net
>>534
setlocalはそういうもんだから
逆に環境が引き継がれちゃったらsetlocal使う意味が無くなる
そういうことやりたかったら、
setlocal
set result=999

endlocal&set result=%result%&cd フォルダ
ってやると、環境変数を返すことも出来る

558:デフォルトの名無しさん
16/06/09 01:29:34.62 M1aHpfX0.net
>>535
ありがとうございます
そんな高度な技ができるとは知らなかったです

559:デフォルトの名無しさん
16/06/09 02:52:40.71 3N2Gwx2N.net
>>526
suffixとかかな
for /f "delims=" %%j in ('dir /a-d /b "%folder%" 2^>nul ^|^|goto :eof') do ren "%folder%" "%%~nj" &&goto :eof
でren出来なかった場合のみerrorlog吐くとかの方がスマートかも
まあバッチだし。。細かいとこ凝るならpsとかの方が

560:デフォルトの名無しさん
16/06/09 14:01:20.29 mVcmv6vY.net
>>537
for /f "delims=" %%j in ('dir /a-d /b "%%folder%%" 2^>nul ^|^|goto :eof') do ren "%folder%" "%%~nj" &&goto :eof

561:デフォルトの名無しさん
16/06/09 14:12:43.69 mVk0iXAO.net
> マルチ質問に返答するのはマナー違反って話なんだから
質問がマナー違反なんて話は知られてるが
返答がマナー違反なんて初めて聞いたけど、誰かソース知ってる人いる?
この人の妄想かな

562:デフォルトの名無しさん
16/06/09 16:04:09.94 Et4Ks3FV.net
こんなところで他人に何かを求めたりルールやマナーを押し付けるのは愚行
自分がレスしたきゃするし興味無いならスルー
自治厨ってのは自分の耐性の低さを尤もらしい大義名分で誤魔化しているだけに過ぎない
自治厨や創価みたいな制裁厨は荒らしと同じゴミ

563:デフォルトの名無しさん
16/06/10 08:47:12.85 7xQ2IbxD.net
>>539
返答しちゃうとマルチでいいんだ
って勘違いする奴がいるってことだろ
普通それぐらいわかると思うが...

564:デフォルトの名無しさん
16/06/12 22:53:45.89 T3khqEs4.net
>>541
普通と言われても、それを実際に文章で目にした記憶ないんだよな
ソース張れるか?妄想URLじゃなくてさ。
クロスポストマルチポストという言葉が生まれたニュースネットならまだしも。
個々のスレで関連性の無い2chだと正直どうでもいい。
ていうか今ニュースネットってどうなってるんだろ。まだあるんかな?

565:デフォルトの名無しさん
16/06/12 23:23:12.75 Dejri5g9.net
>>542
理解力ないってこと?

566:デフォルトの名無しさん
16/06/12 23:29:33.63 nN2o7Cuz.net
誰と闘ってるの

567:デフォルトの名無しさん
16/06/13 02:21:55.70 bKXy9+E3.net
マルチがマナー違反なら答えないほうが良いと思うが普通の考えだと思う
所詮はマナーだからもう終了しろ

568:デフォルトの名無しさん
16/06/16 16:19:50.79 Y8ybIIT3.net
マナー違反として問題になるならあっちこっちで
これがダメあれがダメとダメ出しのソースが出るんだよ。
マルチポストする方に関しては検索するとボロボロ出てくるだろ。
しかしこれがマルチポストに回答する事に関しては出てこんのだよな。
これの意味するところはつまりそこまで問題ではない、問題にする人はいないってこった。
回答する気が無いならしなければいいだけ。
回答した人に対してマナー違反だ回答するな等と文句付けるのは何様?筋違いだと思うね。
ぶっちゃけ俺も気にしないし。気にする人見たら今のように珍しいなあと思うな。

569:デフォルトの名無しさん
16/06/16 16:49:06.61 pl2Ydjf9.net
おまえらしつけーよ
下らないスレチネタで議論する暇があったら面白バッチネタの一つでも書きやがれ
で、PowerShellってどうよ?

570:デフォルトの名無しさん
16/06/16 17:50:03.03 dWCIrllM.net
Power Shellにはなんか食指が動かない(XP


571:使ってるんで) まあ簡単な奴以外はwsh(jscript)を使うな でも今Rubyが面白いかもって思ってる(Perlも入れたけどそっちは殆ど手付かず) .JScriptの中からScriptControlでRubyScriptの関数をCALLするとか変態的なことを試してるところ (.rbで作って、.js(.wsf)に埋め込むっていう非効率的な作業をやってる)



572:デフォルトの名無しさん
16/06/16 23:14:35.32 oJOkyOjy.net
パワーシェルは出来る事も多いし 痒いとこ(チンポじゃないよ)にも手が届くけど
なんとなくバッチ組めちゃうdosコマンドに比べたら難しく感じちゃうな
ただ複数のアプリの同時起動が簡単に出来るからそういう用途ではよく使ってる

573:デフォルトの名無しさん
16/06/17 07:01:08.70 TQ7oR46s.net
>>546
>>543

574:デフォルトの名無しさん
16/06/17 07:14:29.17 TQ7oR46s.net
>>547
書き方とかにちょっと違和感があるけど慣れればかなり使えるって感じ
特にバッチは文字列の扱いが色々面倒だからファイル名を切った張ったするようなケースだと PowerShell の方が楽
WPF 使って GUI もいけるし

575:デフォルトの名無しさん
16/06/17 14:10:51.86 ZjDSffK/.net
>>550
お前がな…

576:デフォルトの名無しさん
16/06/17 14:14:36.97 ZjDSffK/.net
個々人がマナー違反だと思うのはその人の勝手。
だが、「皆が」そうだというならお前以外の意見つまりソースを出せと。
そんなことも理解できんのね

577:デフォルトの名無しさん
16/06/17 14:45:53.78 kt8UtU4J.net
>>546
本来、内容はどうであれ、マルチポストの相手をすべきではないんだよ。
マルチポストとか思うから、マナーだとか言い出すんだろうけど、
コピペの荒らしだと思えばいいんだよ。相手にするヤツがバカだろう?

578:デフォルトの名無しさん
16/06/17 15:22:57.71 PGPlVx2O.net
いやー、そのレスでちょっとは盛り上がったじゃん
十分このスレでの意義はあったと思うよ
元のスレのofficeじゃスレ違いだとかいってハブって追い出したくせに
こっちに来たら追いかけてきてイチャモンつけるって性格悪いな

579:デフォルトの名無しさん
16/06/17 18:35:44.26 oyCWF+hy.net
>>555
そいつに関しては性格悪いなんてもんじゃないでしょ
わざわざ他スレへ出張って文句言う粘着性はガイキチ
池沼は相手にしないが吉
>>548-549
>>551
いや、おまえがスレチだろってツッコミ待ちだったんだがおまえら良い奴だな
ありがとう
既に.NET知ってる人は楽なんだろうけど一から覚えるの面倒臭くて。。
ましてやPSの為だけにとなるとなかなか重い腰が動かず
>ファイル名を切った張ったするようなケースだと
まさにこの用途なんだよね
バッチから文字列の扱いを少し便利にしてくれるくらいで良かったんだけど覚える量的に一気にハードル上がって面倒臭い
覚えてしまえば楽になりそうなのは分かってるので、ぼちぼちやってくわ

580:デフォルトの名無しさん
16/06/17 18:55:09.01 TQ7oR46s.net
>>554
まあ、そう言うこと
ググって部屋のなかにうんこするなとかの書き込みが少ないからうんこするぜ
って言うのと同じ
考える力のない奴に何を言ってもしょうがない

581:デフォルトの名無しさん
16/06/17 18:58:07.69 TQ7oR46s.net
>>556
対話で使えなくてもいい
将来を心配したことがない
なら vbs/jscript + wsh でもいいかも

582:デフォルトの名無しさん
16/06/19 09:59:28.72 rDn80OX3.net
>>557
うんこと考えてるのは実はお前だけってな
お前さん理想と現実の区別付いてないだろ?

583:デフォルトの名無しさん
16/06/19 11:27:46.12 Pvc+naRU.net
>>559
>>543

584:デフォルトの名無しさん
16/06/19 17:51:44.69 Ujr


585:NrWKl.net



586:デフォルトの名無しさん
16/06/19 20:28:17.53 N0SKT7vZ.net
> 2ちゃん初めてか?
まだこんなこと言ってる奴がいるんだなw

587:デフォルトの名無しさん
16/06/20 05:15:32.88 bz6tTT9I.net
そもそも「2ちゃん」という言い方自体、自称古参爺しか使わん

588:デフォルトの名無しさん
16/06/20 12:37:29.60 1rHeBxTu.net
ちゃんちゃん

589:デフォルトの名無しさん
16/06/20 12:56:47.33 XUIKeVkP.net
2chって言うよな

590:デフォルトの名無しさん
16/06/21 23:17:02.70 wIBHL76T.net
言うの?
発音はツーチャンネル?

591:デフォルトの名無しさん
16/06/22 03:22:26.83 UKX8/FIx.net
声には出さないけど「にちゃん」って読んでるな
書く時は2chって書くかな

592:デフォルトの名無しさん
16/06/22 08:59:59.99 ffHjJb8n.net
>>567
漏れも

593:デフォルトの名無しさん
16/06/24 01:13:29.70 buggiI8H.net
俺は教育テレビって言ってる
Eテレは馴染めん

594:デフォルトの名無しさん
16/06/24 02:23:17.48 iovZLto/.net
教育テレビは3チャンネルだと思ってたけど、
地デジは3ちゃんTVK♪というCM思い出して
違うことに気づいた。

595:デフォルトの名無しさん
16/06/27 10:51:32.41 IRTRDse4.net
dir /Q はオーナー名が長いとファイル名とくっついてしまう欠陥コマンドだった

596:デフォルトの名無しさん
16/06/27 13:44:52.16 cmd3G8BZ.net
会社のサーバに散在している.batファイルを片っ端から削除したい。いや、マジで。
URLリンク(el.jibun.atmarkit.co.jp)

597:デフォルトの名無しさん
16/06/27 13:56:09.99 YSZG9z+3.net
del /f /s /q *.bat
でよくね?

598:デフォルトの名無しさん
16/06/27 14:13:24.61 RStewB0e.net
個人用ローカルPCだけど俺も何に使ったか分からないbatファイルがそれなりに残ってるわw
1度整理したから大量ってほどではないけど
ニッチな用途だとファイル名だけでは用途を思い出せないのが難点

599:デフォルトの名無しさん
16/06/27 14:35:10.14 N5RLWdSz.net
batなんて使わなくなったら即削除してるから残ってるのはせいぜい20個程度だ

600:デフォルトの名無しさん
16/07/03 21:43:03.57 vq6Z+j1h.net
「削除した」なら許せるが、削除したい(削除できなかった)ならただの糞文

601:デフォルトの名無しさん
16/07/03 22:02:09.39 T1/0jYLy.net
読んでねーけど、したいけど出来ないって愚痴なんじゃねーの?
何に使うか分からんようなゴミを鯖に残してて勝手に消したら老害が何で消した?いつか使うかもしれんのに!って怒るとか
いつかって何だよって言う。たかがbatでアホかって老害SEあるあるネタ

602:デフォルトの名無しさん
16/07/03 22:37:12.83 CJuDkW1k.net
んー、そもそもバッチを使う(作る)人に対する人格否定、という感じのブログ
アナウンス出して全て消しゃいいじゃん、というのが率直な感想
でもやりたいのは、バッチを使う(作る)人の排除みたいだから、
社長になって独裁人事するのが一番の解決なんだろうね

603:デフォルトの名無しさん
16/07/06 01:43:37.05 j2aYQoha.net
整理整頓が出来ていればいい話
バッチに限った事じゃない
不要の見極めも難しいから
消せずに残ってゴミ屋敷が現実

604:デフォルトの名無しさん
16/07/07 00:24:13.51 WGF782sG.net
会社のサーバだとうちもバッチに限らずなんだかよく分からんのがいっぱいあったな
いらなさそうなのまとめて圧縮して1年後の日付書いてこの日まで使わなければ消すってしといた

605:デフォルトの名無しさん
16/07/07 14:56:47.42 TsrNo+6t.net
そうやってなんか対処してるなら話はわかるんだけど
うぜぇうぜぇ�


606:チて言うだけで自分では対処しないで放置ってのはもう…



607:デフォルトの名無しさん
16/08/09 17:07:41.16 j5HqbEBX.net
Windows 10のLinuxサブシステムを狙った攻撃が今後登場する可能性
URLリンク(srad.jp)
免疫力がつくまでしばらく待った方がいいのか知らん

608:デフォルトの名無しさん
16/08/14 22:50:59.47 r/0nUjHR.net
そもそもβなんだし、素人さんが手を出していい物じゃないんだけどな。

609:デフォルトの名無しさん
16/08/15 00:25:59.77 8W38K+Qq.net
まだcygwinのほうが安全ということなのかね

610:デフォルトの名無しさん
16/08/21 07:59:09.76 zhyP4GkP.net
今んとこサーバ用途は全く想定してないからさして問題にはならないだろう
最終的にはMacのポジションを目指すのだろうからそれまでに直しておけば良い
テクノロジーカンファレンスがSurfaceで埋まる日は来るか
URLリンク(www.buildinsider.net)

611:デフォルトの名無しさん
16/09/06 18:28:00.80 G35PExva.net
Windows標準のコマンドプロンプトウィンドウをタブ化できる「ConEmu」
URLリンク(osdn.jp)
多数のDOS画面でお仕事する人向け

612:デフォルトの名無しさん
16/09/06 18:51:20.42 rT4OuLmz.net
ConEmuも所詮バックグランドでcmd動かしてて、
cmd単独よりは少し便利になるものの、
元々の日本語の表示の不具合(端が切れる)を引き継いでるからなぁ。
cmd完全互換のまともなシェルはないものかねぇ。

613:デフォルトの名無しさん
16/09/07 18:29:47.35 b6UGEvRF.net
タブでまともに機能するのはすごいたぶちさんだけ

614:デフォルトの名無しさん
16/09/07 19:12:06.44 eCxhE93W.net
.BATと.CMDでは何が違うのでしょうか?
使える命令などに違いがあるのでしょうか?
教えてください。

615:デフォルトの名無しさん
16/09/08 00:57:15.94 54d0WlHM.net
>>589
違いは無いよ
DOSの時代からWin16の時代は拡張子はBATであり、
Win32の時代からMSはCMDに変えたがったみたいだが以前としてBATが主流となってるだけ

616:デフォルトの名無しさん
16/09/08 01:30:50.71 MGX2ZdyU.net
cmd は WindowsNT, OS/2 由来じゃなかったっけ?
例えば OS/2 だと bat にすると DOS互換ボックスでのバッチファイル動作で
cmd にすると OS/2 ネイティブ動作

617:デフォルトの名無しさん
16/09/08 02:06:01.27 54d0WlHM.net
>>591
そうだったっけ?
OS/2は殆ど使ったことない(さわりだけ)んで、拡張子batが動作したかどうか忘れちゃったんだけど
(暗黙の了解でcmdでしか使ってなかった)

618:デフォルトの名無しさん
16/09/08 02:15:48.19 54d0WlHM.net
ちなみに俺が使ってたOS/2はver.1.2のごく初期の奴だったんで
そもそもDOS互換とか存在してなかった気もする

619:デフォルトの名無しさん
16/09/08 03:45:32.33 Jzexm0YP.net
>>589
基本的には同じと思っていいけど厳密には少しだけ動作に違いがある
URLリンク(stackoverflow.com)

620:デフォルトの名無しさん
16/09/08 04:05:36.46 PAzqK7FZ.net
.bat 普通のバッチファイル用途。
.cmd ruby -x でrubyのコード埋め込む為に使用する。シンタックスハイライトをruby向けに設定。
という超ローカルな使い分けをしている

621:デフォルトの名無しさん
16/09/08 21:40:41.34 5x3R57hb.net
setlocal enabledelayedexpansion
set STR="aaa"
if STR=="aaa"(
STR = "bbb"
echo !STR!
)
echo !STR!
echo %STR%
遅延環境変数が分からない


622:のですが、自分の環境だと全て"aaa"になります。 どこが間違っているんでしょうか?



623:590
16/09/08 21:53:39.72 5x3R57hb.net
すいません。適当に書いてしまったのを訂正します
・"bar"が出て上手く行かないケース
@echo off
setlocal enabledelayedexpansion
set foo2="bar"
if %foo2% == "bar" (
set foo2 = "hoge"
echo !foo2!
)
pause
・"hoge"が出て上手く行くケース
@echo off
setlocal enabledelayedexpansion
set foo="bar"
if %foo% == "bar" (
set foo="hoge"
echo !foo!
)
pause
この2つの違いが分かりません。

624:デフォルトの名無しさん
16/09/08 21:58:24.35 5x3R57hb.net
自己解決しました
foo2と=の間に空白があるのが原因でした。
バッチは文字列を代入する際には空白があってはいけないのですね。
set foo2= "hoge"
としたら上手く行きました。
set /a foo2 = 10
では空白があっても行けたのですが、文字列の場合はダメなんですね。

625:デフォルトの名無しさん
16/09/09 03:51:09.43 LpeB3e0i.net
Linuxのシェルスクリプトでも、変数代入時、= の前後に、半角空白を入れられない
a=b
a = b これはダメ
こういう点が、プログラミング言語としてはクソなんだよ。
PowerShell_ise を使いな

626:デフォルトの名無しさん
16/09/09 06:34:14.46 Sx9RRTJO.net
>この2つの違いが分かりません。
そんな違いわかりたくもない
バッチファイルでif文をトラブルなく使う - Qiita
URLリンク(qiita.com)
バッチファイルでif文を使っていてハマったので、ハマらないための書き方と注意点をまとめてみた
解決方法
何も考えず必ず以下の形で書く。
if 条件 ( ←(1)
call :サブルーチン名 引数 ←(2)
) else if 条件 ( ←(3)
call :サブルーチン名 引数
) else ( ←(4)
call :サブルーチン名 引数
) ←(5)

627:デフォルトの名無しさん
16/09/10 14:10:07.42 WyiyFmBQ.net
>>597
ダブルクォート記号を意図して含めたいならそういう記述もありだろうね
だけど、純粋に文字列だけ比較したいだけなら変数名も含めてくくって、あとは判定部分で整形する方が自由度がある
set

628:デフォルトの名無しさん
16/09/10 14:14:02.54 WyiyFmBQ.net
途中で切れた?全角でリトライ
SET "foo= b a r "
IF "%foo%"==" b a r " (
IF "%foo%" == " b a r " (
のようにすれば前後の空白も含めて評価されるし、この場合どちらも同じ結果が得られる
なので、>>598の「バッチは文字列を代入する際には空白があってはいけないのですね。」は誤り
変数の文字列前後、if文のイコール記号の前後の空白の有無で意図しない比較結果になり得る記述は避けたほうがいいのは自明
環境変数の遅延展開に関しては、カッコで囲んだ複文の挙動を把握した上で適切に使う
環境変数はあとから再利用する性質上、意図しない文字や空文字になってしまうのが一番怖い
別解としては、call set "foo=hoge" があり、echo;%%foo%% などのようにパーセント記号を重ねても同じ結果が得られる
こちらは setlocal enabledelayedexpansion は不要、この方法は公式とは言えないのでユーザーのお好み次第といったところ

629:デフォルトの名無しさん
16/09/11 01:07:52.20 4x/hjQLW.net
sqlite3のコマンドラインツールでDB読込み時間を測って遊んでたら
sqlite3 hoge.db "SELECT * FROM TEST" > nul よりも
sqlite3 hoge.db "SELECT * FROM TEST" > "c:\Temp\hoge.txt" のほうが
出力完了までの時間が短かったんですが、出力をnulに捨てるのって
普通にファイルに吐くより遅くなるもんなんでしょうか。

630:デフォルトの名無しさん
16/09/11 01:24:31.36 zfXOe+JX.net
>>603
常にそうなるの?
たまたまじゃなくて?
db読み込みの時間とかが関係してきそうな気がするし
それに


631:write時間は以外に掛からないんでファイルがでかくなければnulとの差はつかない (read時間は掛かるし実行時間にかなりばらつきが出る、また2回目以降はキャッシュからになる)



632:デフォルトの名無しさん
16/09/11 02:05:36.54 zfXOe+JX.net
>>603
ちょっと試してみた
確かにnulの方が時間が掛かる
そこで、sqlite3の代わりに、type xxx.txt >yyy.txtで試してみた
やっぱりファイルに書き出すよりnulの方がはっきり時間がかかる
何故なのかは分からん、スマン

633:デフォルトの名無しさん
16/09/13 21:52:06.22 NwZGDC4j.net
コマンドプロンプトから実行して
処理しますか?(Y/N)⇒処理⇒処理完了後F3キー押すとして終了
するツールを毎日ポチらないといけないのですが
txtにYとF3を書いてリダイレクトで自動入力すれば楽にポチれる気がするんですが
F3をtxtファイルにどう書けばいいのかわかりません、助けてください

634:デフォルトの名無しさん
16/09/14 06:17:54.15 xpMA1gBQ.net
F3は無理だと思うけど・・・

635:デフォルトの名無しさん
16/09/14 08:44:57.03 f2EPB9Ji.net
>>606
uwscでやれば?

636:デフォルトの名無しさん
16/09/14 17:27:36.03 Jy6DKzEX.net
>>608
ありがとうございます
EXECでバッチファイル起動してYとF3入力してexit⇒ENTERで終了するようマクロ組みました
タイマー起動ソフトでUWSを指定時間に実行するようにしたので何もしなくてよくなりました
ありがとうございます

637:デフォルトの名無しさん
16/09/19 03:08:13.70 3gpWvjZ8.net
cmdですが
schtasksでstartコマンドがうまく使えません
/tr "start フルパス実行ファイル名"
※パスにはスペース無しです

638:デフォルトの名無しさん
16/09/19 03:34:12.50 rks5/FmO.net
>>610
cmd内部コマンドを起動するように登録するなら
"cmd /c start xxx"
だけど、単に
/tr xxx
じゃああかんの?(xxxはフルパスの実行ファイルなんでしょ?)

639:デフォルトの名無しさん
16/09/19 04:07:56.77 3gpWvjZ8.net
>>611
速いレスポンスありがとうございます
おっしゃる通りどちらもいけました!
もともとスペースありのパスで悩んで
/tr "フルパススペース混じり" …1
/tr "\"フルパススペース混じり\"" …2
上記1.2から始まり詰まってましたが
お陰様でstartの使い方がわかりました

640:デフォルトの名無しさん
16/09/19 12:05:07.29 mqRkSqP8.net
startは引数にスペースが混じるとおかしくなる
その場合は第一引数に空文字列入れると良い
start "" "c:\program files~"

641:デフォルトの名無しさん
16/09/22 20:07:59.66 yIBGfr99.net
taskkill /im explorer.exe
start explorer
をバッチにしてエクスプローラ再起動に使ってたんだけど
最近explorer.exeが見つかりませんってなってkillできないんだけど何でだろう
タスクマネージャからなら止められるしPID指定でも止められるんだけど

642:デフォルトの名無しさん
16/09/27 11:38:03.47 clgfgzqk.net
10か

643:デフォルトの名無しさん
16/09/28 19:18:04.93 zhCs69qF.net
下記バッチファイルで call を実行する
@echo off
set a1=%%a2%%
set a2=%%a3%%
set a3=%%a4%%
set a4=%%a5%%
call echo %a1%
call echo %a1% | more
pause
結果は
%a3%
%a4%
なぜか表示が違う
パイプを使うと変数の展開が一回増えるようだ

644:デフォルトの名無しさん
16/09/29 00:33:45.25 RC/Dq8j5.net
パイプは、子タスクでインスタンスは別だと思うよ
set a=1
echo %a%|(more|set a=2)
echo %a%

645:デフォルトの名無しさん
16/09/29 00:34:51.35 RC/Dq8j5.net
echo %a%|(more&set a=2)

646:デフォルトの名無しさん
16/09/29 02:15:55.37 HmIZKCJu.net
echo %a1%
echo %a1% | more
%a2%
%a3%

647:デフォルトの名無しさん
16/09/29 02:29:13.86 HmIZKCJu.net
call call echo %a1%
call call echo %a1% | more
%a4%
%a5%

648:デフォルトの名無しさん
16/10/07 02:33:21.18 E4yfr


649:V8y.net



650:デフォルトの名無しさん
16/10/07 02:39:36.76 E4yfrV8y.net
>>621
追記ですが
"/"の数は変動します

651:デフォルトの名無しさん
16/10/07 03:13:06.25 PWoZvLSt.net
bat素人が適当に書いたらこうなった
set token_number=1
:start
for /f "tokens=%token_number%,* delims=/" %%a in ("/aaa/bbb/ccc") do if "%%b"=="" (
set hoge=/%%a
) else (
set /a token_number=token_number+1
goto start
)
echo %hoge%
pause

652:デフォルトの名無しさん
16/10/07 03:33:35.13 RDmrItg+.net
ちょっと邪道だけど
powershell -Command

653:デフォルトの名無しさん
16/10/07 03:34:29.48 RDmrItg+.net
切れたので再送
powershell -Command Split-Path -Path /aaa/bbb/ccc -Leaf

654:デフォルトの名無しさん
16/10/07 03:44:17.59 273HGXTN.net
>>621
tmp に & や % 等々が入っていない、ダメな文字が無いという楽観的な状態なら
set tmp=/aaa/bbb/ccc/ddd eee
call %tmp:/=&set tailpart=%
echo %tailpart%

655:デフォルトの名無しさん
16/10/07 10:20:31.14 uWLqn+Rg.net
echo [ERROR][%~n0][%date% %time%] エラー出た(ERRORLEVEL=%ERRORLEVEL%)
これ標準エラー出力で出力するのってどうやるんですか?

656:デフォルトの名無しさん
16/10/07 10:47:05.46 yoIkF7ck.net
>>627
標準出力先を標準エラー出力先と同じになるようにリダイレクトしてやるとかかな
(意図がわからんからこれで解決するのかどうかは知らんけど)
echo xxx 1>&2

2>errout.txt 1>&2 echo エラー(err no=111)

657:デフォルトの名無しさん
16/10/07 11:05:50.41 yoIkF7ck.net
出力先が同じだから、2>errout.txt は >errout.txt に書き替えても同じ結果になることからも分かるように
やってることはあくまで出力先を同じにしてるだけなので、標準エラー出力のみを取り扱ってるわけではないことに留意
(なお 1> の 1 は省略可能なので、 1>&2 は >&2 と書くことも可能)

658:デフォルトの名無しさん
16/10/07 11:23:31.75 uWLqn+Rg.net
echo aaa
echo bbb 1>&2
echo ccc
で試したところ望みどおりの動作になりました
ありがとうございます

659:デフォルトの名無しさん
16/10/07 11:44:29.04 5wS7M9ck.net
>>621
案1:
FOR /F "delims=" %%I IN ("/aaa/bbb/ccc") DO ECHO %%~nxI
案2:
CALL :SUB "/aaa/bbb/ccc"
GOTO :EOF
:SUB
ECHO %~nx1

660:デフォルトの名無しさん
16/10/07 12:09:19.90 PWoZvLSt.net
色んなやり方があるんだなあ勉強になる

661:デフォルトの名無しさん
16/10/08 07:09:00.83 sXvXMvPu.net
@echo off
set "a=/aaa/bbb/ccc\ddd"
set "b="
call :x a b
echo "%a%"
echo "%b%"
pause
goto :eof
:x
setlocal enabledelayedexpansion
set "a=/!%1!"
set b=-1
:y
set "c=!a:~%b%,1!"
if "!c!" == "/" goto z
set /a b-=1
goto y
:z
set "c=!a:~%b%!"
endlocal & set "%2=%c%"
goto :eof

662:デフォルトの名無しさん
16/10/09 20:38:11.04 mq9cB08l.net
7z.exe x AAA.zip -oBBB >hoge.txt
7z.exeで展開してるんだけど、終了するまえに、
次の処理に行ってしまい、その後がエラーになる。
7z.exeの終了を待つには、どうしたらいいのですか?
>hoge.txtは必要。
start /wait 7z.exe x AAA.zip -oBBB >hoge.txt
では、hoge.txtが空だし、コマンドプロンプトの窓がもう一個開くし。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


663:デフォルトの名無しさん
16/10/09 21:25:06.80 DFuD


664:/t4t.net



665:デフォルトの名無しさん
16/10/10 09:40:47.22 UJJq0Lfa.net
>>635
ありがとうございます。
10回くらいテストして、それ「start /B /wait "" 」でいけました。

666:デフォルトの名無しさん
16/10/12 15:15:40.33 CXMCNpce.net
for %%a in (“*.mkv”) do ffmpeg.exe -i %%a -b:v 3000k -acodec ac3 -ar 48000 -vcodec libx264 D:\encoded\%%~na.mp4

mkvとflvを入力に使いたいです
二重ループ以外に方法ありませんかね?

667:デフォルトの名無しさん
16/10/12 15:33:04.97 V1BPQ8PQ.net
`dir /b *.mkv;*.flv`をキャプチャすればいいんじゃないの
自分なら2行にコピペするがw

668:デフォルトの名無しさん
16/10/12 15:35:36.60 CyghQ6/+.net
"*.*v"
他にvが付くもの無ければ

669:デフォルトの名無しさん
16/10/12 15:38:43.19 CXMCNpce.net
>>638
すみません
2行にコピペするとはどういうことですか?

>>639
私も考えたのですがwmvがありました

670:デフォルトの名無しさん
16/10/12 16:07:30.74 aOSR32QX.net
for %%a in (*.mkv *.flv) do ...

671:デフォルトの名無しさん
16/10/12 16:12:00.02 YqqdfgOM.net
>>640
*.mkvで処理と*.flvで処理と2行for文を書くという意味じゃないかな?
for /f "tokens=*" %%a in ('dir /b *.mkv *.flv') do ~
とか
dir /b *mkv>files.tmp
dir /b *.flv>>files.tmp
for /f "tokens~*" %%a in (files.tmp) do ~
del files.tmp
とか色々とか色々と出来るよ

672:デフォルトの名無しさん
16/10/12 16:51:21.25 k+jI1aQa.net
質問です。サブディレクトリのファイルで、0バイトのファイルだけを削除したいです。
以下のページにあるサンプルをベースに、dirに /s をつけてサブディレクトリも
対象とするようにしました。
バッチで自動的に作成したファイルを容量チェックして削除する方法ってありますか? (DOSプロンプト活用相談室LOG)
URLリンク(fpcu.on.coocan.jp)
実行してみると、0バイト以外のファイルも条件が成立してしまい、
動作してくれません。OSがwindows10のせいでしょうか。
FOR /F %%F IN ('dir /s /B') DO ( CALL :CheckFile %%F )
EXIT /B
:CheckFile
SET FileAttrib=%~a1
IF NOT %FileAttrib:~0,1%==d (
IF not "%~z1" == "0" (
ECHO "%1" はファイルサイズが %~z1 で、0 なので削除します。
REM DEL %1
)
)
EXIT /B
==をEQUに変えてみたり、ダブルクォートをつけたりしましたが変化なしでした。
どのように直せば、0バイトのみが引っかかるようにできるか、宜しくお願いします。
なお、上記コードは、安全のためdelはREMをつけたままです。

673:デフォルトの名無しさん
16/10/12 17:01:12.97 k+jI1aQa.net
すいません補足です。
>IF not "%~z1" == "0" (
これは、notがないのが正常な状態です。
なにをやっても条件が成立してしまうので、
ためしにnotをつけて、論理が反転するか試したところ、
これも全部条件が成立してしまいました。
その実験をしたときの残骸のnotが残ってしまいました。

674:デフォルトの名無しさん
16/10/12 17:10:16.64 CyghQ6/+.net
if %~z1==0
のように書く。==の両側にスペース入れたらダメ

675:デフォルトの名無しさん
16/10/12 17:14:15.79 CyghQ6/+.net
それでもダメだったら
CALL :CheckFile %%~fF
を試してみて

676:デフォルトの名無しさん
16/10/12 17:19:24.35 CyghQ6/+.net
IF NOT %FileAttrib:~0,1%==d
これ必要?
dir /a-d /b /s としておけば要らない

677:デフォルトの名無しさん
16/10/12 17:32:19.00 k+jI1aQa.net
ありがとうございます。指摘の件を全て直しましたが、ダメでした。
FOR /F %%F IN ('dir /a-d /s /B') DO ( CALL :CheckFile %%~fF )
EXIT /B
:CheckFile
SET FileAttrib=%~a1
IF %~z1==0 (
ECHO "%1" はファイルサイズが %~z1 で、0 なので削除します。
REM DEL %1
)
EXIT /B

実行結果
 IF 1695606 == 0 (
 "F:\TEST\file.txt" はファイルサイズが 1695606 で、0 なので 削除します。

678:デフォルトの名無しさん
16/10/12 17:37:43.49 h3rHiOkq.net
set hoge="hage te naiyo"
とやると、%hoge%でダブルクォーテーションも読み込んでしまいます
対処法教えて下さい

679:デフォルトの名無しさん
16/10/12 17:44:13.80 X88zouZU.net
パスにスペースが入ってんじゃ?

for /f "delims=" %%i in ('dir /a-d /b /s *.*') do if %%~zi EQU 0 del "%%~fi"

680:デフォルトの名無しさん
16/10/12 17:46:49.24 tJlO+qdh.net
set "hoge=hage te naiyo"

set hoge=hage te naiyo
そもそも "" でくくらない

681:デフォルトの名無しさん
16/10/12 17:54:18.24 YqqdfgOM.net
>>648
本当にそんな表示なのか?
上の IF 1695606 == 0 ( を書いてるということはbatの展開された実行ステートメントを表示してるだけじゃないのか?
正確には
IF 1695606 == 0 (
ECHO "F:\TEST\file.txt" はファイルサイズが 1695606 で、0 なので 削除します。
REM DEL F:\TEST\file.txt
)
と4行表示されただけなんじゃないの?
それと、半角空白の存在するファイル名があったらエラーになるよ
"tokens=*"とか"delims="をつけて、引数は""で囲んで渡すようにした方がいい
(さらに^とかの文字もファイル名に含まれてる可能性があるなら引数渡しは諦めて環境変数で渡すようにする)

682:デフォルトの名無しさん
16/10/12 17:56:29.96 CyghQ6/+.net
for /f "usebackq delims=" %%F in (`dir /a-d /b /s`) do if %%~zF==0 echo %%~F
これで0バイトだけechoされるはずだと思うけど

>>649
set "hoge=hage te naiyo"

683:デフォルトの名無しさん
16/10/12 18:07:46.52 YqqdfgOM.net
>>649
もし何らかの理由で""を付いたままで代入しなくてはいけないのなら、その後で取ることは出来る
set hoge=%hoge:"=%
とか
set hoge=%hoge:~1,-1%
とか
まあ後者は"が付いているかどうかチェックした方がいいけど
if ^%hoge:~0,1% equ ^" set hoge=%hoge:~1,-1%

684:デフォルトの名無しさん
16/10/12 18:12:36.27 CyghQ6/+.net
後から外す場合はcallやforで%~1や%%~Iでも可

685:デフォルトの名無しさん
16/10/12 18:13:42.95 k+jI1aQa.net
>>652
すみません、こちらの勘違いでした。教えていただいたコードで動きました。
echo off していないため、条件が成立しないコードが表示されてるのを見て、
あたかも実行されているかのように勘違いしてるだけでした。

この手のトラブルが嫌いなので対象のファイル名に空白は入っていませんでした。
完成形ですが、空白が含まれているファイル名も処理する場合は、以下で大丈夫でしょうか。

echo off
FOR /F %%F IN ('dir /a-d /s /B') DO ( CALL :CheckFile %%~fF )
echo 処理終わり。
pause
EXIT /B

:CheckFile
SET FileAttrib=%~a1
IF "%~z1"=="0" (
ECHO "%1" はファイルサイズが %~z1 で、0 なので削除します。
DEL "%1"
) else (
ECHO "%1" はファイルサイズが %~z1 で、削除しません。
)
EXIT /B

686:デフォルトの名無しさん
16/10/12 18:31:53.33 k+jI1aQa.net
うーん・・・このバッチだと、0バイトかどうか調べる対象ディレクトリが1000個、総ファイルが10万個とか有ると、
最初のforから全然進んでくれないようです。
core-i5で10分待っても開始されず。ディスクの能力じゃ無く、BATのCPU消費率が上がります。
>>653さんの書き方で、大量ファイルの処理時の挙動は変化するか、これから試してみます。
大量処理に適した書き方などがあったらご教示ください。

687:デフォルトの名無しさん
16/10/12 18:44:53.26 YqqdfgOM.net
>>657
そんな大量のファイルは無いので定かではないけど、多分バッファが溢れてるんじゃないかと思う
一旦ファイルに書き出したらどうだろ?
dir /a-d /s /b>list.tmp
for /f %%F in (list.tmp) do

688:デフォルトの名無しさん
16/10/12 18:59:59.00 CyghQ6/+.net
10万とか処理させたこと無いけどバッチよりもPowerShell使った方が良いんじゃね?

689:デフォルトの名無しさん
16/10/12 19:01:10.45 RjRHLuRO.net
>>642
ありがとうございます
出来ました
それともう一つ
エンコードの進捗状況を表示する事ってできませんかね?
12/87(ファイル)みたいな感じで

690:デフォルトの名無しさん
16/10/12 20:02:06.24 nxsWiPWy.net
forfiles使う方法も
forfiles /s /c "cmd /c if @isdir==FALSE if @fsize==0 del @file"

691:デフォルトの名無しさん
16/10/12 20:08:20.15 IaZq30Xa.net
Windows 10 だと rd hoge /S /Q でなかなかhogeディレクトリを削除できないけど、
なにかいい方法ありますか?

692:デフォルトの名無しさん
16/10/12 20:19:09.72 WWSUEmVo.net
>>661
for が速いとは言わないが forfiles は輪をかけて遅いから辛いんじゃないかな

693:デフォルトの名無しさん
16/10/12 20:31:06.50 YqqdfgOM.net
>>660
大昔DOSにあったansi.sysのようにエスケープシーケンスが使えたら可能なんだけどね
噂じゃwinsows10でエスケープシーケンスが使えるようになったとかの話もあるけど真偽のほどはどうなんだろ

694:デフォルトの名無しさん
16/10/13 00:46:44.28 cRZfvb+W.net
>>656
以下に修正したほうがいいけど、ざっと見ただけだから他にもあるかもw

FOR /F %%F IN ('dir /a-d /s /B') DO ( CALL :CheckFile %%~fF )

FOR /F

695:デフォルトの名無しさん
16/10/13 00:49:54.35 cRZfvb+W.net
FOR /F %%F IN ('dir /a-d /s /B') DO ( CALL :CheckFile %%~fF )

FOR /F "delims=" %%F IN ('dir /a-d /s /B') DO ( CALL :CheckFile "%%~fF" )

IF "%~z1"=="0" (

IF %~z1==0 (

ECHO "%1" はファイルサイズが

ECHO "%~1" はファイルサイズが

DEL "%1"

DEL "%~1"

サブルーチンへ引数を渡す際はダブルクォート記号が過不足なく評価されているか実行前に要テストね
それと、ifの数値比較についてはヘルプ読むべし。数字以外を含むと文字列比較になるから

696:デフォルトの名無しさん
16/10/13 01:11:54.49 nRww2f6N.net
>>652が指摘してるけど、
もしファイル名が "a^b.txt" だったり、 "ab%cd%ed.txt" だったりしたらエラーになると思う

697:デフォルトの名無しさん
16/10/13 02:20:45.86 9ieIMwqB.net
>>657
FOR /R %%F IN (*.*) DO ( CALL :CheckFile %%~fF )

にしたらマシになる?

698:デフォルトの名無しさん
16/10/13 02:28:09.62 9ieIMwqB.net
あ、折角指摘が出てたのに修正漏れ

%%~fF → "%%~fF"

699:デフォルトの名無しさん
16/10/13 02:30:01.50 nRww2f6N.net
>>668
本来の目的だった半角空白のことを忘れたんか

700:デフォルトの名無しさん
16/10/13 08:14:45.67 CLiojDhV.net
>>667
そんなのまで対応しないといけないなら vbs とか PowerShell にした方がいいと思う

701:デフォルトの名無しさん
16/10/13 19:02:37.99 tpWzBOlc.net
call するなら環境変数で渡せば問題ない
つうか直接に del すりゃいいだけだろ
for /r %%i in (*) do if %%~zi == 0 del "%%~fi"
ファイル名に ^ とか % とか ユニコード特有文字とか有っても問題ない
あと、==の両側にスペースがダメとか意味不明

702:デフォルトの名無しさん
16/10/13 23:49:13.04 BSlfrai+.net
for %%a in (*hoge.txt) do ~
この場合、ファイル名がaiueohoge.txtだった場合、aiueoだけを抜き出す方法有りませんか?
%%~naみたいな演算子?でお願いします

703:デフォルトの名無しさん
16/10/14 01:11:11.25 Ep7xlThW.net
>%%~naみたいな演算子?でお願いします
無理
一旦環境変数に入れて置換でhoge.txtを消し残りを取り出す事%fname:hoge.txt=%や
%fname:~0,-8%なら可能
set fname=%%~na
echo %fname:~0,-4%

704:デフォルトの名無しさん
16/10/14 03:21:39.34 onADalnL.net
@echo off
set

705:デフォルトの名無しさん
16/10/14 03:24:46.91 onADalnL.net
set "fname=*hoge.txt" & set b=-1
setlocal enabledelayedexpansion
:x
if not "!fname:~%b%,1!" == "*" set /a b-=1 & goto x
endlocal & set /a b=%b%+1
for %%a in ("%fname%") do set "c=%%~nxa" & call echo "%%c:~0,%b%%%"

706:デフォルトの名無しさん
16/10/14 20:38:01.10 YifyNonQ.net
ありがとうございます
set

707:デフォルトの名無しさん
16/10/14 20:40:05.91 YifyNonQ.net
"ありがとうございます
set "fname=*hoge.txt" & set b=-1
setlocal enabledelayedexpansion
:x
if not "!fname:~%b%,1!" == "*" set /a b-=1 & goto x
endlocal & set /a b=%b%+1
for %%a in ("%fname%") do set "c=%%~nxa" & HOGE "%%c:~0,%b%%%"
ここでHOGEに処理を入れ、"%%c:~0,%b%%%"をファイル名として使えばいいんですかね?
それとfor文で入力に使った*hoge.txtのだけ*hogeだけ抜き出したい場合は


708:どうすればいいんでしょうか



709:デフォルトの名無しさん
16/10/14 22:54:24.45 +Ryxbx0f.net
>>678
call echo %%c:~0,%b%%%
は環境変数の遅延展開を使わず展開させる方法だから、別の処理で置き換えるなら、
HOGE !c:~0,%b%!
のように!記号でくくる方向で(call foo はどのコマンドでも使えるわけではないため)
ファイル名の抜き出しは、パラメーターで調整できると思う
バッチパラメーターについては「call /?」あたりから

710:デフォルトの名無しさん
16/10/14 23:02:08.75 +Ryxbx0f.net
ID違うからわかると思うけど、>>676とは別人なのであしからず(言い忘れすまそ)

711:デフォルトの名無しさん
16/10/14 23:39:49.51 Ep7xlThW.net
>aiueohoge.txtだった場合、aiueoだけを抜き出す方法有りませんか?
>>676が示してくれただけで
>HOGEに処理を入れ、"%%c:~0,%b%%%"をファイル名として使えばいいんですかね?
そんな質問されてもファイル名として使うのかどう処理するのかとか分かる訳ねーだろ
aiueoをリネームに使うのか?何がしたいのか分からん事には答えようがない

712:デフォルトの名無しさん
16/10/15 00:10:29.36 GrBj6Sia.net
>>678 質問の意図がよく分からん

set "fname=*hoge.txt" & set b=-1
setlocal enabledelayedexpansion
:x
if not "!fname:~%b%,1!" == "*" set /a b-=1 & goto x
endlocal & set /a b=%b%+1
for %%a in ("%fname%") do set "c=%%~nxa" & call :y "%%c:~0,%b%%%" "%%c%%"
goto :eof
:y
echo hoge "%~1" "%~n2"

713:デフォルトの名無しさん
16/10/15 23:20:33.46 DDtj3KwG.net
バッチ初心者です。
Windowsのタスクで指定時間した時間になったら、バッチファイルで指定した常駐ソフトを再起動(終了→起動)させたいのですが、
taskkill /f /im app.exe
start /MIN "" "C:\app.exe"
のようにして最小化(/MIN)で起動するようにすると、そのソフトは何故かウインドウのスクロールバーが何故か消えてしまいます。
なので一旦アクティブで起動させてスクロールバーを表示させてから最小化したいのですが、方法がわかりません。
taskkill /f /im app.exe
start "" "C:\app.exe"
で起動させたあと、アクティブなapp.exeをコマンドで最小化する方法があったら教えてください。
よろしくお願いします。

714:デフォルトの名無しさん
16/10/16 06:33:42.07 e+WiyjQC.net
バッチにそんな機能はない
ahkなら
IfWinExist ahk_exe app.exe
   WinMinimize

715:672
16/10/16 10:52:23.32 lNEScQ2P.net
抽象的な事を言って困らせてすみません
何をやりたいのかと言うと、youtubeから落とした動画がhoge -【DASH】.mp4とhoge - 【DASH】.m4aとなっているので、
これを
ffmpeg -i hoge - 【DASH】.mp4 -vcodec copy -i hoge - 【DASH】.m4a -acodec copy hoge.mp4
とエンコードして、
hoge【DASH】.mp4をforで検索して、その拡張子を取ったものを入力として使い、出力ファイル名として、hoge.mp4としたかったのです

716:デフォルトの名無しさん
16/10/16 17:03:52.47 z1QBGf3F.net
>>660
set /p で改行を入れない文字列を出力して
コントロールコードのBSで消す

@echo off
set bs=[BS]
set delline=%bs%%bs%%bs%%bs%%bs%%bs%%bs%%bs%%bs%%bs%%bs%%bs%%bs%
for /L %%i in (1,1,10) do (
set /p x=%delline%%%i/10 <nul
timeout /t 1 >nul
)

717:デフォルトの名無しさん
16/10/16 19:44:42.76 l/p5e+57.net
>>685
set "fname=* - 【DASH】.mp4" & set b=-1
setlocal enabledelayedexpansion
:x
if not "!fname:~%b%,1!" == "*" set /a b-=1 & goto x
endlocal & set /a b=%b%+1
for %%a in ("%fname%") do set "c=%%~nxa" & call :y "%%c:~0,%b%%%" "%%c%%"
goto :eof
:y
ffmpeg -i "%~n2.mp4" -vcodec copy -i "%~n2.m4a" -acodec copy "%~1.mp4"

718:デフォルトの名無しさん
16/10/16 21:03:50.48 cWFHk7WJ.net
>>686
コントロールコードを挿入できない人用
set bs=[BS]
  ↓
for /f "delims=0" %%I in ('cmd /u /c echo 〈') do set bs=%%I

719:その1
16/10/18 10:49:49.38 492hutXa.net
サーバサービスの起動条件がスタートアップ状態が自動でありながら
開始になっていないものをバッチで出力したい

とりあえずSCコマンドを使ってこんなことすると
sc \\HOGE query state= inactive |find "SERVICE_NAME" >hoge.txt

下記のような起動していないサービスの名前がテキストに吐かれる
SERVICE_NAME: AeLookupSvc
SERVICE_NAME: ALG
SERVICE_NAME: AppIDSvc
SERVICE_NAME: AppleChargerSrv
SERVICE_NAME: AppMgmt
SERVICE_NAME: aspnet_state
SERVICE_NAME: AudioEndpointBuilder
SERVICE_NAME: AudioSrv
SERVICE_NAME: AxInstSV
SERVICE_NAME: BDESVC
SERVICE_NAME: Browser
(以下 略)

720:その2
16/10/18 10:50:03.97 492hutXa.net
そしてサービスのスタートアップ状態を調べるには
sc qc [サービス名]で表示される
sc \\HOGE qc AeLookupSvc |findstr "SERVICE_NAME START_TYPE"

この2つを組合せればフルオートで起動条件がスタートアップ状態が自動でありながら
開始になっていないものを出せるはずなんだが
「SERVICE_NAME:」←これが邪魔なんだ
教えてエロい人

これが消せたら下記でフルオートできるはず
@for /F %%=a in ('hoge.txt') do (
sc \\HOGE qc %%a
)

721:デフォルトの名無しさん
16/10/18 12:27:03.23 6Un6ctsT.net
for /f "tokens=1*" %%A in (hoge.txt) do echo %%B

722:デフォルトの名無しさん
16/10/18 12:44:29.69 oqQNu1fO.net
for /f

723:デフォルトの名無しさん
16/10/18 12:46:48.12 oqQNu1fO.net
for /f "usebackq tokens=2*" %%a in ("hoge.txt") do sc \\HOGE qc %%a

724:デフォルトの名無しさん
16/10/18 12:59:57.92 oqQNu1fO.net
"tokens=1*" %%b が正しい

725:デフォルトの名無しさん
16/10/18 13:04:01.66 492hutXa.net
面目ない、誤解させてしまったかも
オイラが知りたいのは

sc \\HOGE query state= inactive |find "SERVICE_NAME" >hoge.txt

で出力される下記を
SERVICE_NAME: AeLookupSvc
SERVICE_NAME: ALG
SERVICE_NAME: AppIDSvc
SERVICE_NAME: AppleChargerSrv
SERVICE_NAME: AppMgmt
(以下 略)

先頭の文字列「SERVICE_NAME:」を外して出力したいというのが主旨です
AeLookupSvc
ALG
AppIDSvc
AppleChargerSrv
AppMgmt
(以下 略)

726:デフォルトの名無しさん
16/10/18 13:39:39.76 oqQNu1fO.net
for /f "tokens=1*" %%a in ('sc \\HOGE query state^=inactive ^| find "SERVICE_NAME"') do echo %%b >>hoge.txt

727:デフォルトの名無しさん
16/10/18 13:41:17.91 l1RYXy70.net
サービス扱うならPowerShellの方が楽でいいよ。
バッチから呼ぶならこんな感じ。
powershell -command

728:デフォルトの名無しさん
16/10/18 13:44:58.91 l1RYXy70.net
ダブルクオーテーション使うとそこで切れるんだけど書き込めてる人との違いってなんなんだろう

729:デフォルトの名無しさん
16/10/18 13:49:59.99 l1RYXy70.net
powershell -command ”Get-Service | ?{$_.StartType -eq 'Automatic' -and $_.Status -eq 'Stopped'}”

730:デフォルトの名無しさん
16/10/18 13:51:45.76 flBcMs6G.net
てすと
powershell -command "Get-Service | ?{$_.StartType -eq 'Automatic' -and $_.Status -eq 'Stopped'}"

731:デフォルトの名無しさん
16/10/18 13:52:36.16 UJ1l7XRj.net
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('sc \\HOGE query state^= inactive') do (
if "%%i"=="SERVICE_NAME" set name=%%j
echo;!name:~1!>hoge.txt
)

732:デフォルトの名無しさん
16/10/18 17:21:44.41 IWtXyw3/.net
ありがとうございます
早速試してみたのですが・・・

まずパワーシェルの方は「$_.StartType -eq 'Automatic'」これが効かないようです
(「$_.Status -eq 'Stopped'」こちらは効いてます)

バッチの方は1件目の「WwanSvc」だけで終ってしまうようです

733:デフォルトの名無しさん
16/10/18 17:24:37.38 XKgIhtEU.net
バッチファイルってWindowsタブレットで使える?

734:デフォルトの名無しさん
16/10/18 17:25:51.36 IWtXyw3/.net
大事な事を忘れてました

CL:Windows7プロ SP1(32bit)6.1.7601
SV:WindowsSV 2008R2 SP1(64bit)

735:デフォルトの名無しさん
16/10/18 17:59:25.19 oqQNu1fO.net
>「WwanSvc」だけで終ってしまう
>hoge.txtと上書きしてるんじゃ?>>hoge.txtと追記になってる?

736:デフォルトの名無しさん
16/10/18 20:40:09.09 UJ1l7XRj.net
アウチ!
ミスってた

>>705の通り。695追記になってない

×echo;!name:~1!>hoge.txt
〇echo;!name:~1!>>hoge.txt

737:デフォルトの名無しさん
16/10/18 22:14:57.94 N6eA0nOq.net
なるほど、追記になってなかったんですね
ただ、今度は同じサービス名が8回ずつ記録されるようになってしまいました
PCがおかしいのかなとwindows7とwindows8.1、そして懐かしのWindows2000で試しても
同じように8回ずつ記録されてしまうようです


AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
AdobeFlashPlayerUpdateSvc
ALG
ALG
ALG
ALG
ALG
ALG
ALG
ALG
AppIDSvc
AppIDSvc
AppIDSvc
AppIDSvc
AppIDSvc
AppIDSvc
AppIDSvc
AppIDSvc

738:デフォルトの名無しさん
16/10/18 22:41:11.76 UJ1l7XRj.net
type nul>hoge.txt
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('sc query state^= inactive') do (
if "%%i"=="SERVICE_NAME" (
set name=%%j
echo;!name:~1!>>hoge.txt
)
)

739:デフォルトの名無しさん
16/10/18 23:32:59.96 N6eA0nOq.net
>>708
成功しました
カッコの有無でなんでこんなに違うんだろうと不思議です

740:デフォルトの名無しさん
16/10/19


741:01:04:29.51 ID:OIm1eZAK.net



742:デフォルトの名無しさん
16/10/19 01:12:10.60 cKBmHXZY.net
そんな回りくどい事しなくても>>696で出来んじゃん

743:デフォルトの名無しさん
16/10/19 07:11:53.90 Jbfd2Dlj.net
>>696は一瞬コマンド窓が開くだけで動かなかったのです

744:デフォルトの名無しさん
16/10/19 07:56:59.52 OiCCOICb.net
>>698
2chのバグだろ

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" を、\" とエスケープすれば、どうかな?

745:デフォルトの名無しさん
16/10/19 12:52:41.93 nMHfZfYD.net
&#34; と文字参照を使って書き込めばいいのでは?
結果として " となるはず。

746:694
16/10/19 13:03:34.54 fhJbq8nW.net
JaneXenoでは特別な事しなくても書き込めた

747:デフォルトの名無しさん
16/10/20 18:11:41.71 fyY9mWCP.net
いっつもStyleで書いてるけど"で切れたことなど一度もないけどなあ

748:デフォルトの名無しさん
16/10/20 18:13:00.13 1rA0OcU3.net
>>687
遅くなってすいません
無事動きました
ありがとうございます

749:デフォルトの名無しさん
16/10/20 19:03:20.93 LBhOxlVJ.net
ダブルクオーテーションで切れるのこれっぽい。
スレリンク(unix板:777番)
自分も確かにこのケースだった。

750:デフォルトの名無しさん
16/11/02 06:03:13.96 CHmLMhVd.net
バッチファイル終了のお知らせ

“Microsoft Flow”が正式公開。さまざまなサービスを組み合わせた自動処理が可能 - 窓の杜
URLリンク(forest.watch.impress.co.jp)

751:デフォルトの名無しさん
16/11/02 06:40:56.27 w2Q1/JQP.net
アイデアは良いと思うが

>さまざまなアプリやサービスを組み合わせた自動処理を作成できるクラウドサービス“Microsoft Flow”を正式公開した。
>“Microsoft Flow”は“○○したら××する”といった一連の手続き(ワークフロー)をビジュアルでデザインし、自動実行できるサービス
>料金は1ユーザー1カ月あたり750回までの実行であれば無料。有償プランであれば実行回数が増える

回数制限で有料とかゴミすぎ

752:デフォルトの名無しさん
16/11/02 09:32:20.20 5fVzD+K5.net
こんなのは華や茶の流派と同じで新しいのがでても統合などされることは無いんだよね

753:デフォルトの名無しさん
16/11/02 23:59:36.62 WEv5cQ3m.net
>>719-720
ワークフローなんか各社から出てるじゃん。

754:デフォルトの名無しさん
16/11/04 00:14:32.57 0ODaAY82.net
そういうのってネットに繋いでない時にも必要なのにクラウドサービスって
しかも有料って

755:デフォルトの名無しさん
16/11/04 01:47:32.80 DvwqGnEZ.net
完全にスタンドアロンで放置して動かすときにクラウドなんて使ってられない

756:デフォルトの名無しさん
16/11/10 06:45:58.93 +oUm9x6Y.net
TidyTabs Window Manager: give every program a tabbed user interface
URLリンク(www.nurgo-software.com)

757:デフォルトの名無しさん
16/11/11 12:54:54.72 ZYU/THNy.net
batファイルをつくりたいのですが、どのようにすればいいでしょうか
全くの初心者なのでヒントが欲しいです

目標としては、

親フォル�


758:_Aの中に、子フォルダ[aaa]あああ、[aaa]いいい、[bbb]ううう があります ①([aaa]あああ)の[ ]内の文字(つまりaaa)を自動で取得し、その名前の新規フォルダを作成。(つまりaaaという名前の新規フォルダ) ②その後、親フォルダA内の[aaa]が入っているフォルダを検索する ③ ②で検索された複数フォルダを①で作成されたフォルダに入れる という流れを自動で行いたいです



759:デフォルトの名無しさん
16/11/11 14:42:02.48 OyxHpcMK.net
>>726
親フォルダを引数で渡すとしての一例
@echo off
pushd %1
for %%i in ([*]*) do (
for /f "tokens=1* delims=[]" %%j in ("%%~i") do >nul 2>&1 (md "%%~j"&move /y "%%~i" "%%~j")
)
popd

760:デフォルトの名無しさん
16/11/11 15:12:14.98 p31+l1cx.net
>>727
最初のforは/dつけないとだめでは

761:デフォルトの名無しさん
16/11/11 15:56:59.78 OyxHpcMK.net
おおー、フォルダだったのか
てっきりファイルだと思い込んでたよ

762:デフォルトの名無しさん
16/11/13 18:37:37.78 cer+jHW2.net
質問させていただきます
初めてバッチファイル、コマンドプロンプトを勉強して作っているのですが、HTMLページから特定のURLを抜き出してバッチファイルに代入したいのですが、その場合はWSH等で抜き出さないと出来ませんでしょうか

763:デフォルトの名無しさん
16/11/13 20:15:27.03 YAp+h9P5.net
>>730
HTMLページって具体的に何?

764:デフォルトの名無しさん
16/11/13 20:16:08.95 vGjlz1Ep.net
そんな大雑把過ぎる質問では最適解など分かるはずもなくレスつかないよ
PowerShell使ったら?

765:デフォルトの名無しさん
16/11/13 20:19:41.15 cer+jHW2.net
>>731
OPENREC.tvという動画サイトです
ここから動画ファイルのURLを吸い出して、エンコソフトをコマンドプロンプトに直接代入したいと思いまして・・・

>>732
すみません、この手の事は不慣れで・・・
PowerShellというものを初めて知りましたので、調べてみます

766:デフォルトの名無しさん
16/11/13 23:00:08.77 BL+CTUiW.net
手段の前にまず手順を具体的に整理して見るといい

要件についてまったく何も知らない他人に
全部手作業でやってもらうよう依頼するとしたらどう説明する?

767:デフォルトの名無しさん
16/11/14 01:02:54.70 csZc9y3a.net
松岡修造みたいにすると思う。

768:デフォルトの名無しさん
16/11/14 13:10:56.92 vvHHVAL2.net
バッチなんて所詮手作業を自動化するだけ

ここでは手作業を自動化するのを支援することは出来るが
手作業で出来ないor内容がわかってない人はどうしようもない

769:デフォルトの名無しさん
16/11/14 14:36:44.38 O1UQmJEN.net
>>733
1.PowerShellで.NETFramework使う
2.PythonやRubyなんかのllを使う
3.C#で簡単プログラミング
さあ選べ

770:デフォルトの名無しさん
16/11/14 15:07:34.34 WHs7zj8I.net
この場合は、バッチファイルにて
htmlを取得して、url文字列を抜き出して、エンコソフトにオプション渡し
ができるのか?、という問いなので、さあ答えは

771:デフォルトの名無しさん
16/11/14 15:27:55.44 bnBDmUvf.net
>>733
そこのサイトは知らんけど
>動画ファイルのURLを吸い出して
なんて書いてるけど今時動画ファイル直リンなんてあるの?手段すら分かってないんじゃない?
この手の技術に明るくないのであれば既存ソフトを用いてUWSCやAHKで自動化が現実的だと思う
rtmpdumpみたいなcuiソフトがそのサイトで使えるならバッチで出来ると思うが


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch